本程序 旨在把argv[1]中的内容写入myfifo中
- #include <sys/types.h>
- #include <sys/stat.h>
- #include <errno.h>
- #include <fcntl.h>
- #include <stdio.h>
- #include <stdlib.h>
- #include <string.h>
- #define FIFO_SERVER "/home/wangjian/wangjian/jctx/myfifo"
- int main(int argc,char* argv[])
- {
- int fd, i = 0;
- char w_buf[100];
- int nwrite;
- FILE *p;
- fd=open(FIFO_SERVER,O_WRONLY|O_NONBLOCK|O_CREAT,0);
- if(fd==-1)
- if(errno==ENXIO)
- printf("open error; no reading process/n");
- else
- printf("other error [%d]/n",errno);
- if(argc==1)
- {
- printf("Please send something/n");
- exit(0);
- }
- if ((p = fopen(*++argv, "r")) == NULL)
- printf("error open argv[1]");
- while ((w_buf[i++] = getc(p)) != EOF)
- ;
- w_buf[i] = '/0';
- //strcpy(w_buf,p);
- //strcpy(w_buf,argv[1]);
- printf("w_buf : %s/n", w_buf);
- if((nwrite=write(fd,w_buf,strlen(w_buf)))==-1)
- {
- if(errno==EAGAIN)//资源暂时不可用
- printf("The FIFO has not been read yet.Please try later/n");
- else
- printf("other error [%d]/n",errno);
- }
- else
- printf("write %s to the FIFO/n",w_buf);
- exit(0);
- }