write_fifo.c
来自「源码包中是我在学习Linux进程间通信时所写的关于五种通信方式(管道」· C语言 代码 · 共 53 行
C
53 行
#include "fifo.h"/* write data to fifo */void signal_handler( int s );int main(int argc, char **argv ){ int fd; char buffer[BUFFER_SIZE]; ssize_t n; if( argc < 2 ) { fprintf( stdout, "Usage:%s <filename>\n",argv[0] ); exit(1); } signal( SIGPIPE, signal_handler ); if( (fd = open(argv[1], O_WRONLY)) < 0 ) { fprintf( stderr, "open fifo %s for writting failed: %s\n", argv[1], strerror(errno) ); exit(1); } fprintf( stdout, "open fifo %s for writting successed.\n", argv[1] ); while( fgets(buffer, BUFFER_SIZE, stdin) ) { again: if( (n = write(fd, buffer, strlen(buffer))) < 0 ) { if( errno == EINTR ) { goto again; } else { fprintf( stderr, "write fifo failed :%s\n", strerror(errno) ); break; } } } return 0;}void signal_handler( int s ){ fprintf( stdout, "Caught signal %d\n", s );}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?