📄 b.c
字号:
#include <stdio.h>#include <stdlib.h>#include <unistd.h>#include <sys/types.h>#include <sys/stat.h>#include <error.h>#include <string.h>#include <fcntl.h>#define FIFO_INPUT "/tmp/input"#define FIFO_REVERSE_RESULT "/tmp/result"int main(int argc, char **argv){ int iFDWrite = -1; int iFDRead = -1; char szBuffer[200] = {0}; char szReverseBuffer[200] = {0}; //create write and read pipe if(mkfifo(FIFO_INPUT, O_CREAT|O_EXCL) < 0) { perror("mkfifo() -- careate input pipe"); return EXIT_FAILURE; } if(mkfifo(FIFO_REVERSE_RESULT, O_CREAT|O_EXCL) < 0) { perror("mkfifo() -- create result pipe"); return EXIT_FAILURE; } //1.read data from input pipe //2.reverse data //3.write reversed data to result pipe iFDRead = open(FIFO_INPUT, O_RDONLY|O_NONBLOCK, 0); if(iFDRead < 0) { perror("open input pipe"); } printf("Waitting for read data...\n"); for(;;) { memset(szBuffer,0,200); int iRet = read(iFDRead, szBuffer, 200); if(iRet > 0) { printf("Read \"%s\" from input pipe.\nReverseing string...\n",szBuffer); int i = 0; for(i = 0; i < iRet; ++i) { szReverseBuffer[i] = szBuffer[iRet-i-1]; } iFDWrite = open(FIFO_REVERSE_RESULT, O_WRONLY|O_NONBLOCK, 0); if(iFDWrite < 0) { perror("open output pipe"); } else { printf("Reversed data:%s\n",szReverseBuffer); write(iFDWrite,szReverseBuffer,iRet); printf("Write reversed string to output pipe.\n"); } break; } } close(iFDWrite); iFDWrite = -1; close(iFDRead); iFDRead = -1; unlink(FIFO_INPUT); unlink(FIFO_REVERSE_RESULT); return EXIT_SUCCESS;}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -