Перейти к содержанию

oleg_sml

Members
  • Постов

    3
  • Зарегистрирован

  • Посещение

    Никогда

Достижения oleg_sml

  1. gogi писал(а) Wed, 12 August 2009 17:20 Создается впечатление, что код программы вы поместили на форум не копи-пастом, а ручным набором Вы правы наберал вручную, так как Линукс стоит на виртуалке и выхода в инет нет Большое спасибо! уже разобрался
  2. Извиняюсь при подачи листинга программы допустил ошибки, в первой программе стоит if(pipe(fd<0) и во второй close(fd[0]).
  3. Здравствуйте! Пытаюсь передать стринг между двумя дочерними процессами. ниже листинги программ. В чем проблема? на линуксе недавно программирую. pipe.c #include<sys/types.h> #include<unistd.h> #include<stdio.h> #include<string.h> int main( int argc, char *argv[], char *envp) { int fd[2], result, result1; char resstring[14]; if (pipe<0) { printf("Can't creat pipe\n"); exit(-1); } result=fork(); if (result<0) { printf("Can't fork child1\n"); exit(-1); } else if (result==0) { result1=fork(); if (results1<0) { printf("Can't fork child2\n"); exit(-1); } else if (result==0) { execle("root/child2","root/child2",0,envp); } else { printf("This is child1\n"); close(fd[1]); size=read(fd[0],resstring,14); if (size!=14) { printf("Can't read all string\n"); exit(-1); } close(fd[0]); printf("%s",resstring); } } else { printf("This is parent\n"); exit(-1); } return 0; } child2.c #include<sys/types.h> #include<unistd.h> #include<stdio.h> #include<string.h> int main( i) { int fd[2]; size_t size; char resstring[14]={"HELLO, WORLD!"}; close(fd[0); size=write(fd[1],resstring,14); if (size!=14) { printf("Can't write all string\n"); exit(-1); } close(fd[1]); return 0; } При запуске выдает сообщения: This is child2 Can't write string This is child1 This is parent Can't read all string
×
×
  • Создать...