- 论坛徽章:
- 0
|
1。如果当前没有进程打开FIFO来读,那么打开该FIFO来写的open调用也将会阻塞,对吧?
2。下面程序,字进程为什么会阻塞?
- #include "head.h"
- int main(int argc, char **argv)
- {
- int err;
- int readfd, writefd;
- pid_t pid;
- err = (mkfifo(FIFO1, FILE_MODE) < 0) && (error != EEXIST);
- if(err > 0){
- err_hander("mkfifo error");
- }
- pid = fork();
- if(pid < 0){
- err_hander("fork error");
- }
- else if(pid == 0){
- writefd = open(FIFO1, O_WRONLY);
- if(writefd < 0){
- err_hander("open FIFO1 for write error");
- }
- close(writefd);
- }
- readfd = open(FIFO1, O_RDONLY);
- if(readfd < 0){
- err_hander("open FIFO1 for read error");
- }
- err = waitpid(pid, NULL, 0);
- if(err < 0){
- err_hander("waitpid error");
- }
- printf("1111111111111111111111111\n");
- unlink(FIFO1);
- exit(0);
- }
复制代码
[ 本帖最后由 xiaozhu2007 于 2008-3-5 23:16 编辑 ] |
|