目前我正在使用ls(在第一个子节点内)进行排序(在第二个子节点内),但sort将ls的输出读作一行而不是不同的文件名
在我的代码中,我有第一个孩子:
if(childpid == 0){
close(fd[0]);
dup2(fd[1], 1);
execlp("ls", "ls", (char *)0);
}
现在对于第二个孩子,它应该是读取第一个孩子的输出:
if(childpid2 == 0){
close(fd[1]);
dup2(fd[0], 0);
read(fd[0], string, sizeof(string));
close(fd[0]);
execlp("sort", "sort", string, NULL);
}
我目前的输出是:
sort: open failed: activity
text.txt
text2.txt
exercise.c
: File name too long
有没有办法让我可以单独读取每个文件,以便排序可以查看每个文件中的内容以对它们进行排序?