Чат
Сървър (chatsrv.c)
Създайте файл на име ./fifofile. Отворете за писане ./fifofile в случай на грешка излезте. Стартирайте цикъл, който работи докато получим "q" от клавиатурата. Прочетете символ (key) и го запишете във файла. Ако key* е Enter използвайте flush**. Затворете и изтрийте файла.
#include <stdio.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <unistd.h>
#define FIFO_NAME "./fifofile"
int main(int argc, char * argv[]) {
FILE * f;
char ch;
mkfifo(FIFO_NAME, 0600);
f = fopen(FIFO_NAME, "w");
if (f == NULL){
printf("Failed to open FIFO!\n");
return -1;
}
do {
ch = getchar();
fputc(ch, f);
if (ch == 10) fflush(f);
} while (ch != 'q');
fclose(f);
unlink(FIFO_NAME);
return 0;
}
Клиент (chatclnt.c)
Отворете за четене файл на име ./fifofile. Стартирайте цикъл, който работи докато получим "q" от клавиатурата. Прочетете символ (key). Изведете получения символ в конзолата. Затворете и изтрийте файла.
#include <stdio.h>
#include <unistd.h>
#define FIFO_NAME "./fifofile"
int main ()
{
FILE * f;
char ch;
f = fopen(FIFO_NAME, "r");
do
{
ch = fgetc(f);
putchar(ch);
} while (ch != 'q');
fclose(f);
unlink(FIFO_NAME);
return 0;
}