作为一个学校项目,我需要编写一个 C 程序来打开一个文件夹(文件夹名称作为参数),然后将每个文件的内容写入其中。实际上是在执行 cat 的工作。
但我绝对不知道怎么写,我知道文件打开和系统调用,所以我想使用它们。
在 exec 中执行 ls 命令时我们使用了 ("bin\ls",ls,NULL) 那么我可以在 execlp 中使用 open 或 cd 命令打开文件夹吗?
打开后,我需要打开其中的每个文件并打印其内容。可能会使用 while 循环和 fopen 来完成,但是我如何编写 while 循环来检查它何时到达文件夹的末尾?甚至我也能设法写出它,我到底要如何打开一个名称未写在程序中的文件?
如果 systemcalls 和 fopen 是错误的方法,那我该怎么办?
main(void)
{
FILE * fp;
char dicname[10];
scanf("%s",dicname[0]);
pid_t pid;
pid = fork();
if(pid<0)
{
fprintf(stderr,"Fork error");
exit(-1);
}
else if (pid ==0)
{
//execlp("cd","cd",dicname); or maybe //execlp("open","open",dicname);
//while(end of folder) //maybe 1<argv
//{
//fopen(files,r)
//}
}
}
最佳答案
查找 opendir
等以读取目录的内容 - http://linux.die.net/man/3/opendir
Look up fopen
read 读取文件内容 - http://linux.die.net/man/3/fopen
关于c - 打开文件夹并在其中写入文件的内容 C (猫手动工作),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21067311/