?? fifo_w_test_1.c
字號(hào):
#include <sys/types.h>#include <sys/stat.h>#include <errno.h>#include <fcntl.h>#define FIFO_SERVER "/tmp/fifoserver"main(int argc,char** argv)//參數(shù)為即將寫入的字節(jié)數(shù){ int fd; char w_buf[4096*2]; int real_wnum; memset(w_buf,0,4096*2); if((mkfifo(FIFO_SERVER,O_CREAT|O_EXCL)<0)&&(errno!=EEXIST)) printf("cannot create fifoserver\n"); if(fd==-1) if(errno==ENXIO) printf("open error; no reading process\n"); fd=open(FIFO_SERVER,O_WRONLY|O_NONBLOCK,0); //設(shè)置非阻塞標(biāo)志 //fd=open(FIFO_SERVER,O_WRONLY,0); //設(shè)置阻塞標(biāo)志 real_wnum=write(fd,w_buf,2048); if(real_wnum==-1) { if(errno==EAGAIN) printf("write to fifo error; try later\n"); } else printf("real write num is %d\n",real_wnum); real_wnum=write(fd,w_buf,5000); //5000用于測試寫入字節(jié)大于4096時(shí)的非原子性 //real_wnum=write(fd,w_buf,4096); //4096用于測試寫入字節(jié)不大于4096時(shí)的原子性 if(real_wnum==-1) if(errno==EAGAIN) printf("try later\n");}
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -