#include #include #include #include #define TRUE 0 #define FALSE -1 void main(void){ int fildes[2]; int rc, bytesWritten, bytesRead; char writeData[10], readData[11]; printf("** TESTPIPE: PIPE のテスト ***\n"); getchar(); memset(writeData, 'A', 10); /*(1) fildes[0] と fildes[1] を pipe で結ぶ */ pipe(fildes); /*(2) fildes[1] に文字列 writeData を出力する */ if((bytesWritten = write(fildes[1], writeData, 10)) == FALSE){ perror("write error"); } else{/* 成功 */ printf("wrote %d bytes\n", bytesWritten); /*(3) fildes[0] から文字列 readData を読み取る */ if((bytesRead = read(fildes[0], readData, 10)) == FALSE){ perror("read error"); } else{/* 読取り成功 */ /*(4) fildes[0] からの読み取り結果を表示する */ printf("read %d bytes\n", bytesRead); readData[10] = 0x00; printf("readData is [%s]\n", readData); }/* 読取り成功 */ }/* 成功 */ close(fildes[0]); close(fildes[1]); getchar(); }