pipe用法
pipe()函數例子:
#include<unistd.h>
#include<stdio.h>#include<stdlib.h>
#include<string.h>
#include<sys/types.h>
int main(void)
{
int ret = -1;
int nbytes;
pid_t pid;
char buf[] = "pipe test";
char rdbuf[80] ;
int fd[2];
int *write_fd = &fd[1];/*寫描述符*/
int *read_fd = &fd[0];
ret = pipe(fd);/*建立管道*/
if(ret<0)
{
printf("管道建立失敗\n");
return -1;
}
pid = fork();/*創建進程*/
if(pid==-1)
{
printf("進程建立失敗\n");
return -1;
}
if(pid ==0)/*子進程*/
{
close(*read_fd);/*關閉讀*/
ret = write(*write_fd,buf,strlen(buf));/*寫入字符*/
return 0;
}
else
{
close(*write_fd);/*關閉寫*/
memset(rdbuf,0,sizeof(rdbuf));
nbytes = read(*read_fd,rdbuf,sizeof(rdbuf));/*讀取字符*/
printf("revice%ddatas:%s \n",nbytes,rdbuf);
}
return 0;
}
總結
- 上一篇: Linq外联查询
- 下一篇: 干货|6个职场常用Excel技巧,千万不