我在C中使用fopen(3)来读取文件并对其进行处理。我已经把当前工作目录下的文件放到了目录中,但是我无法读取该文件(Linux环境/ Cygwin环境)。C中的'fopen'无法在Unix上的当前directoy中打开现有文件
下面是示例代码:
的C代码:
在当前目录中设置为777#include<stdio.h>
#include<stdlib.h>
#include<string.h>
FILE *inFile;
static char fileName[255];
int process_file(FILE *inFile)
{
char ch;
inFile = fopen(fileName,"r");
if (inFile == NULL)
{
perror(fileName);
exit(1);
}
else
{
// Process file
}
fclose(inFile);
return 0;
}
int main(int argc, char *argv[])
{
printf("Enter filename to process \n");
scanf("%s", fileName);
process_file(inFile);
getchar();
return 0;
}
我有文件权限。生成的二进制文件以及我的源代码驻留在输入文件退出的目录中。为什么文件没有打开?
你会得到什么错误?什么'perror'线输出? –
我试过你的程序,它对我来说工作正常。 – riklund
错误在打开文件... – cslrnr