我正在编写一个打开2个文件的程序(file1只读和file2只写),然后打开子进程,用stdin
替换file1
,用{{替换stdout
1}}使用file2
然后运行一些shell命令(dup2()
,sort
,cat
或类似的东西)。该文字必须来自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
请帮忙。