需要在C中的源文件之间共享文件指针的方法吗

需要在C中的源文件之间共享文件指针的方法吗,c,file,pointers,header,argv,C,File,Pointers,Header,Argv,我在代码中创建了一个包含log.txt文件地址的this文件指针: 文件*日志 此地址取决于my main.c函数中的argv[1],它可能是这样的: char address[200]; strcpy(address, argv[1]); FILE *log; log = fopen(address, "w"); fprintf(log, "Comment to be printed on log.txt"); 我需要*log所指向的地址在我的所有.c源文件中都可见,因为它们将有如下行:

我在代码中创建了一个包含log.txt文件地址的this文件指针:

文件*日志

此地址取决于my main.c函数中的
argv[1]
,它可能是这样的:

char address[200];
strcpy(address, argv[1]);
FILE *log;
log = fopen(address, "w");
fprintf(log, "Comment to be printed on log.txt");
我需要
*log
所指向的地址在我的所有.c源文件中都可见,因为它们将有如下行:

char address[200];
strcpy(address, argv[1]);
FILE *log;
log = fopen(address, "w");
fprintf(log, "Comment to be printed on log.txt");
我知道制作日志文件是一种不好的方法,但我的程序足够大,因此更改所有日志打印行将需要相当长的时间


必须使用argv[1]定义文件的地址。在我的函数可以使用它之前,我如何定义它(以及我如何让它们识别它)

log
定义为全局变量,并通过
extern FILE*log将其声明为外部符号在您使用它的其他地方。

抱歉,我不认为更改所有源文件会花费太多时间。了解您的IDE或使用其他工具来完成此操作。Visual Studio非常容易处理这个问题,在Linux上您可以使用sed。因此,我将在main.c中将它声明为一个全局变量,然后,我将在其他源代码上编写
extern FILE*log
?@user3203734是的,这正是我的意思。@user3203734是的,请记住,这种方法将使线程环境中的编程任务更加困难。相反,您可以声明
static
变量,并编程一个逻辑,以便使用
setters
getter