我在这里有点困惑,不太确定这一点。我想要做的是通过terminal/传递文件的名称,该文件cmd将被打开和读取。
myfunction(char* fileName, FILE* readFile)
{
if((readFile = fopen(fileName,"r")) == NULL)
{
return FILE_ERROR;
}
return FILE_NO_ERROR;
}
int main(int argc, char **argv)
{
FILE* openReadFile;
if(myfunction(argv[1], openReadFile) != FILE_NO_ERROR)
{
printf("\n %s : ERROR opening file. \n", __FUNCTION__);
}
}
Run Code Online (Sandbox Code Playgroud)
我的问题是,如果我传递一个指针openReadFile,myfunction()将readFile指向打开文件的指针保存到openReadFile指针中,还是*readFile在打开时需要放置。
mks*_*eve 11
FILE * 需要是一个指针,所以在主 openReadFile 中仍然是一个指针。myfunction 需要 **,因此我们可以使用 fopen 的结果更新 FILE *
*readFile = fopen...更新指针。
int myfunction(char* fileName, FILE** readFile) /* pointer pointer to allow pointer to be changed */
{
if(( *readFile = fopen(fileName,"r")) == NULL)
{
return FILE_ERROR;
}
return FILE_NO_ERROR;
}
int main(int argc, char **argv)
{
FILE* openReadFile; /* This needs to be a pointer. */
if(myfunction(argv[1], &openReadFile) != FILE_NO_ERROR) /* allow address to be updated */
{
printf("\n %s : ERROR opening file. \n", __FUNCTION__);
}
}
Run Code Online (Sandbox Code Playgroud)