|
#include<stdio.h>
#include<sys/types.h>
#include<unistd.h>
#define MAXLINE 256
void err_sys(const char *info)
{
perror(info);
exit(1);
}
int main()
{
int n,fdp[2];
pid_t pid;
char line[MAXLINE];
if(pipe(fd)<0)
err_sys("pipe error");
if((pid=fork())<0)
err_sys("fork error");
else if(pid>0)
{
close(fd[0]);
write(fd[1],"hello world\n",12);
}
else
{
close(fd[1]);
n=read(fd[0],line,MAXLINE);
write(STDOUT_FILENO,line,n);
}
exit(0);
}
我写上面这段程序,想实现父进程把hello world打进管道,然后子进程把这个字符窜从管道读出,但是输出到屏幕的总是乱码,请问为什么?
请教write()和read()的用法。 |
|