/* * $ gcc -Wall -Wextra -std=c11 fifo.c -o fifo * * Linux: * $ ./fifo * $ echo $? * 0 * * Cygwin: * $ ./fifo * fread: Communication error on send * $ echo $? * 1 */ #include #include #include #include int main(void) { const char path[] = "/tmp/fifo"; const char sent[] = "msg"; const size_t len = strlen(sent); char *const read = (char *)malloc(len); int r; size_t s; r = mkfifo(path, 0666); if (r != 0) { perror("mkfifo"); return 1; } FILE* f = fopen(path, "w+"); if (f == NULL) { perror("fopen"); return 1; } s = fwrite(sent, 1, len, f); if (s != len) { perror("fwrite"); return 1; } s = fread(read, 1, len, f); if (s != len) { perror("fread"); return 1; } return 0; }