我正在尝试编写一个程序,该程序可以打开目录中的所有给定文件,并将具有某些更改的文件输出到给定用户指定路径的另一个目录中。我创建了一个函数,该函数将在fork()
之后针对当前目录中遇到的每个文件名进行调用,并且在此新目录中输出将具有相同的名称。我已经看了很多遍,但是仍然找不到为什么fgets()
一直返回NULL
的原因。
void sorter(char *fileName, char *directory, char* newName){
FILE *edit = fopen(fileName, "r");
char buf[700];
char *bufp = buf;
char *fLine = fgets(bufp, sizeof(buf), edit);
if (edit == NULL){
exit(EXIT_FAILURE);
}
printf("%s\n", fLine);
chdir(directory);
FILE *output=fopen(newName, "w");
while(fLine){
fprintf(output, fLine);
fprintf(output, "done");
}
fclose(output);
fclose(edit);
}