我目前正在制作猫计划。我遇到的问题是每当我执行unix命令时:
./catpr file1 file2 file3 | grep string
我不知道如何通过指出存在管道运算符来标记解析的结束。我目前正在使用系统调用在C中开发这个cat程序,所以我使用argv来跟踪参数;但是,每当我查看数组中与“|”对应的内容时,就会出现一些非常奇怪的内容。
答案 0 :(得分:-1)
所以你基本上需要的是你需要在三个文件中搜索一个模式。
由于您已指定使用系统调用来执行您可以执行的操作,因此将字符串作为程序的输入参数。只需执行以下操作即可编译
./ catpr file1 file2 file3 string
在程序内部使用grep进行系统调用。我正在为您提供完整的计划。我希望这就是你所需要的。
#include <stdio.h>
#include <string.h>
int main(int a,char *argv[])
{
char com[256]="";
strcat(com,"cat ");
strcat(com,argv[1]);
strcat(com," ");
strcat(com,argv[2]);
strcat(com," ");
strcat(com,argv[3]);
strcat(com," | grep ");
strcat(com,argv[4]); //this is your search pattern
system(com);
}