я пытаюсь сделать простое чтение/запись в канале, но это дает мне ошибку
это мой код:
#include<stdio.h>
#include<unistd.h>
#include<stdlib.h>
#include<fcntl.h>
#define BUFSIZE 80
int main()
{
int fd[2],n,i,h;
char buf[BUFSIZE];
pipe(fd);
switch(fork())
{
case -1 :printf("Fork Error");
exit(0);
case 0 :close(fd[0]);
printf("Enter N :");
scanf("%d",&n);
write(fd[1],&n,sizeof(n));
close(fd[1]);
case 1 :close(fd[1]);
n=read(fd[0],&h,sizeof(h));
for(i=1;i<=h;i++)
{
if(i%2==1)
{
write(1,&i,n);
}
}
close(fd[0]);
}
exit(0);
}
в этом коде: дочерний указатель fd[0] закрывается и записывается из дочернего указателя fd[1], а затем родитель читает из указателя fd[1] и сохраняет его в переменной h, а затем значение переменной i переходит в STDOUT_FILENO (1) и отображает вывод на стандартный вывод
выход :
kartik@ubuntu:~/Desktop/isp$
Введите N :6
6: команда не найдена
switchотсутствуют операторыbreak. - person kaylum   schedule 20.09.2015