Генерация случайного числа, когда 2 exe выполняются одновременно - PullRequest
0 голосов
/ 21 мая 2019

Я пытаюсь решить следующую проблему: дано 2 файла: "names.txt" и "phone.txt".В «names.txt» есть имя в каждой строке, а в «phone.txt» есть номер телефона в каждой строке.name.c читает строку за строкой из «names.txt», phone.c читает строку за строкой из «phone.txt».И для name.c, и для phone.c потребуется синхронизировать их выполнение (используя каналы связи fifo), так что там будут напечатаны имя и номер телефона.

Я попытался обменять fifo1 на fifo2 100 разтак как это казалось проблемой в прошлый раз, но на этот раз безуспешно

это часть phone.c с использованием каналов fifo:

if (-1==mkfifo("fifo1",0600))
{
    if (errno!=EEXIST)
        perror("crearea a esuat");
}

if (-1==mkfifo("fifo2",0600))
{
    if (errno!=EEXIST) perror("crearea a esuat");
}

fifo1=open("fifo1",O_RDONLY);
fifo2=open("fifo2",O_WRONLY);

for (int j=0;j<=n;j++)
{
    read(fifo1,&ch,1);

    printf("%s",string[j]);

    write(fifo2,&ch,1);
}

и эта часть используетКаналы fifo из name.c

if (-1==mkfifo("fifo1",0600) )
{
    if (errno!=EEXIST)
        perror("crearea a esuat");
}

fifo1=open("fifo1",O_WRONLY);
fifo2=open("fifo2",O_RDONLY);

for (int j=0;j<=n;j++)
{
    printf("\n%s ",string[j]);
    write(fifo1,&ch,1);
    read(fifo2,&ch,1);
}

Печатает случайное число, например «2742», а затем содержимое «name.txt», но после каждого имени номера телефонов не печатаются.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...