Sveto4ka342
01.02.2021 10:12

Программа на си,задание такое:1 процесс открывает файл порождает 2 процесс.Один из них записывает 1 байт в файл подает сигнал другому,второй читает и выводит на экран.Повторить N(у меня 6) циклов запись\чтение.
Проблема:скажите что не так в моем коде?Оно вводит в файл 012345,но выводит на консоль(cygwin,в прикрепленных скрин консоли) -1 шесть раз.
Программа:#include
#include
#include

int main(void) {
FILE *fp;
char name[] = "f.txt";//открытие файла

if ((fp = fopen(name, "w+")) == NULL)

{
printf("Не удалось открыть файл");
return 0;
}

char message = '1';//1 байт
char ch;
int pid = fork();
if (pid < 0) {
printf("Error in fork\n");
return -1;
}

for (int i = 0; i < 6; ++i) //6 ,цикл
{
if (pid > 0) {
raise(SIGSTOP);
fprintf(fp,"%d\n",i);
fflush(fp);
kill(pid, SIGCONT);
} else {
ch = fgetc(fp);

printf("\r%d\n",ch);//вывод на консоль
fflush(NULL);
kill(getppid(), SIGCONT);
raise(SIGSTOP);
}
}
fclose(fp);
return 0;
}

Нажмите на рекламу ниже и сразу увидите ответ
Популярные вопросы:
Ответ:
Homoeopath
30.08.2020 09:13
Задача 1
Var i,sum:integer;
      mas:array [1..10] of integer;
Begin 
  for i:=1 to 10 do begin         
     mas[i]:=random(20);           
      write(' ',mas[i]);           
     sum:=sum+mas[i];                   
                         end; 
writeln; 
   write('Среднее арифметическое этих чисел = ',sum/10);
End.

Задача 2 
Var i,max:integer;
Begin 
readln(i); 
    while (i<>0) do begin   
       if (i>max) then max:=i;   
          readln(i);     
                       end; 
  Writeln('Максимальное число: ',max);
End.
0,0(0 оценок)
Ответ:
DarkD0711
07.01.2021 13:57
А - количество порций эскимо на столе
В - количество стаканчиков на столе

Начало

Ввод данных:
В : = 18
А : = В/3

Действие 1:
В : = В - 3

Действие 2:
А:= А-5

Вывод результатов:
Покажи А
Покажи В

Конец

Протокол выполнения алгоритма:
№ команды  Имя переменной   Значение переменной 
1.                          В                                    18
2.                          А                                      6
3.                          В                                    15
4.                          А                                       1
 
0,0(0 оценок)
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота