在c中使用dup2和execvp

时间:2016-01-15 08:45:06

标签: c execvp dup2

我正在编写一个打开2个文件的程序(file1只读和file2只写),然后打开子进程,用stdin替换file1,用{{替换stdout 1}}使用file2然后运行一些shell命令(dup2()sortcat或类似的东西)。该文字必须来自tr并写入stdin(file1)。这是我的代码。它不是一个完整的代码,它只是子进程调用的函数。

stdout(file2)

所以我遇到的两个问题是:我不确定如何将整个void childProcess(int fd[],char* arguments[]) { int f1=atoi(arguments[0]); //gets file descriptor number of file1 int f2=atoi(arguments[1]); //fd number of file2 dup2(fd[f1],0); //changes stdin to file1 dup2(fd[f2],1); //changes stdout to file2 char* myText[1024]; //not sure how to get the content of stdin into myText char*execArgs[] = {"cat",myText,NULL}; execvp("cat",execArgs); } 转换为stdin(file1),并且程序说: -

myText

请帮忙。

0 个答案:

没有答案