#include <unistd.h>傳入的是兩個file handle。
int pipe(int filedes[2]);
pipe( )會開啟一個pipe。
將read handle給filedes[0].
將write handle給filedes[1].
#include <unistd.h>使用vfork要注意,child 會先執行,而且未結束前不會執行parent process。
main()
{
int filedes[2];
char buf[80];
char s[]="Hello\n";
if( vfork() == 0) { // child
write(filedes[1], s, sizeof(s));
}else{
read(filedes[0],buf,80);
printf("%s",buf);
}
exit(0);
}
使用vfork時,要用exit(0)正確關閉pipe。否則會出現error。
pipe開啟無名管線。有名子的要用mkfifo.
沒有留言:
張貼留言