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

программа, моделирующая команду Shell


Рекомендуемые сообщения

Добрый вечер. Не могу решить задачу, может кто подскажет в чем ошибка?

./pr1<f.dat>f.rez

 

#include <sys/types.h>
#include <sys/stat.h>
#include <sys/wait.h>
#include <unistd.h>
#include <stdio.h>
#include <fcntl.h>
#include <stddef.h>
#include <stdlib.h>
#include <errno.h>

int main(int argc, char *argv[]) {
  printf("Число переданных параметров программе %s = %d\n", argv[0], argc);
  int p = fork();
  if (p == -1) {
    perror("error fork");
    exit(1);
  } else if (p == 0) {
      
    int fdr = open(argv[2], O_WRONLY);  
    if (fdr == -1) {
      perror("error file for read");
      exit(2);
    }
    dup2(fdr, 1);
    close(fdr);
    execlp("argv[0]", "argv[0]", "argv[1]", NULL);
    
  } else {
    wait(NULL);
    /*int fdw = open(argv[2], O_WRONLY | O_CREAT, 0666);
    if (fdw == -1) {
    perror("error file for write");
    exit(3);
      }
    dup2(fdw, 1);
    close(fdw);
    execl("argv[1]", "argv[1]", "argv[2]", NULL);
    
    perror("error");
    exit(4);*/
  }
  return 0;
}

Ссылка на комментарий
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

Загрузка...
×
×
  • Создать...