Чат

Сървър (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;
}

results matching ""

    No results matching ""