c - 打开文件夹并在其中写入文件的内容 C (猫手动工作)

标签 c while-loop fork fopen system-calls

作为一个学校项目,我需要编写一个 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/

相关文章:

c - 函数调用前的堆栈返回地址 : To which segment points the return address?

PHP 循环查询,第一行

c - 子进程是否可以获取其兄弟进程的 PID?

python - 如何正确定义和使用 Python 生成器

android - 在 while 循环中读取 SharedPreferences 的坏习惯?

c - Linux - 如何在 C 中更改 fork 进程的信息

linux - 子进程无法从父进程写入的标准输入中获取输入

c++ - 如何将指向 "DEFINED"常量的指针传递给 C 中的函数?

c++ - EvtSubscribe 拉与推模型

c - closedir() 后无效的 free()