Запись на стандартный ввод из трубы - PullRequest
0 голосов
/ 10 ноября 2019

Я пытаюсь заставить две программы взаимодействовать друг с другом через канал для ввода с сервера.

Конечная цель - отправить текст с сервера, чтобы «верификатор» мог проверить поТекстовый файл с запрещенными словами.

До сих пор я создал канал для отправки информации на стандартный вывод

Server.c

if(mkfifo("FIFO_TEST", 0777) == -1){
    perror("\nmkfifo ERROR");
    unlink("FIFO_TEST");
    exit(EXIT_FAILURE);
}

write(1, "Ola Adeus Daniel Francisco ##MSGEND##", MAX_STRING);

И сделал так, чтобы другая программачитает все, что исходит из стандартного ввода, заканчивающегося "## MSGEND ##", и, если он обнаруживает запрещенные слова, он печатает, сколько было найдено. (Я ничего не могу изменить в этом verifyier.c)

Verifier.c

while (!feof(stdin)) {

    if (scanf("%s", word)<0)
        continue;

    if (!strcmp(word,"##MSGEND##")) {

        printf("%d\n",numhits);
        fflush(stdout);
        numhits = 0; /* restart counting */
        justprinted = 1;
    }
    else {

        numhits += checkWord(word, forbwords, numw);
        justprinted = 0;
    }
}

Я запускаю верификатор в фоновом режиме, чтобы он перехватывал все написанное, но это некажется, не признает это.

...