|
发表于 2004-7-23 18:09:59
|
显示全部楼层
搞定!!
你看啊:
我先让你看看我现在的目录:
[code:1]
[monnand@Monnand test]$ ls
1.c 2.c
[monnand@Monnand test]$
[/code:1]
好了!让你看看1.c(注意,这个是主要的),里面注释我用了英文……我英文不好,你看不懂尽管说啊
[code:1]
#include <stdio.h>
#include <sys/types.h>
#include <unistd.h>
int main()
{
pid_t pid;
int fdin[2]; /* stdin of child process */
int fdout[2]; /* stdout of child process */
char buf[1024];
memset(buf,0,1024);
if(pipe(fdin)<0||pipe(fdout)<0)
perror("can not pipe\n");
pid=fork();
if(pid<0)
perror("Can not fork\n");
if(0==pid)
/* child process */
{
close(fdin[1]);
/* pipe for reading of child process */
close(fdout[0]);
/* pipe for writing of child process */
dup2(fdin[0],0);
dup2(fdout[1],1);
execl("./test",NULL);
exit(0);
}
if(pid>0)
{
close(fdin[0]);
close(fdout[1]);
read(fdout[0],buf,1024);
write(1,buf,1024);
}
waitpid(pid,NULL,0);
return 0;
}
[/code:1]
明白了?
你再看看2.c(很简单啦)
[code:1]
#include <stdio.h>
int main()
{
printf(";lsdajf;f\n");
return 0;
}
[/code:1]
好了!下面我就不说什么了,你看看我的命令就知道了:
[code:1]
[monnand@Monnand test]$ gcc 1.c
[monnand@Monnand test]$ gcc 2.c -o test
[monnand@Monnand test]$ ./a.out
;lsdajf;f
[monnand@Monnand test]$
[/code:1]
明白了??? |
|