当前位置: 技术问答>linux和unix
linux C语言 管道pipe的问题
来源: 互联网 发布时间:2016-09-05
本文导语: 初识linux,不太懂这道题,请高手写下过程供分析,最好有注释,不胜感激... 程序要求: 生成新的进程,把从命令行输入的信息从子进程送到父进程的程序。unipipe 如下: $ ./unipipe [strings(CtoP}] $ $ ./twopipe “Hello, T...
初识linux,不太懂这道题,请高手写下过程供分析,最好有注释,不胜感激...
程序要求:
生成新的进程,把从命令行输入的信息从子进程送到父进程的程序。unipipe
如下:
$ ./unipipe [strings(CtoP}]
$
$ ./twopipe “Hello, This is Child process”
message from child: Hello, This is Child process
要点:
利用fork()等,使用单方向管道。 子进程数据-->写入write() fd[1]-->读出read() fd[0]-->父进程
过程见下图
注:此题是翻译过来的,所以语言组织的可能不是很好,见谅
程序要求:
生成新的进程,把从命令行输入的信息从子进程送到父进程的程序。unipipe
如下:
$ ./unipipe [strings(CtoP}]
$
$ ./twopipe “Hello, This is Child process”
message from child: Hello, This is Child process
要点:
利用fork()等,使用单方向管道。 子进程数据-->写入write() fd[1]-->读出read() fd[0]-->父进程
过程见下图
注:此题是翻译过来的,所以语言组织的可能不是很好,见谅
|
楼主应该好好看看APUE
下面是一个例子,也是你题目的程序
int main(int argc,char **args)
{
int fd[2];
pid_t pid;
char line[MAXLEN];
if(pipe(fd)