Форум русскоязычного сообщества Ubuntu


Хотите сделать посильный вклад в развитие Ubuntu и русскоязычного сообщества?
Помогите нам с документацией!

Автор Тема: exec cat >  (Прочитано 532 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн _XDD_

  • Автор темы
  • Участник
  • *
  • Сообщений: 108
    • Просмотр профиля
exec cat >
« : 25 Май 2014, 20:54:16 »
все пытаюсь склеить 2 файла через cat с помощью C.

execl("/bin/cat", "cat", "in.txt", "in.txt2", " > out.txt", NULL);
execl("/bin/cat", "cat in.txt in.txt2 > out.txt", NULL);

не работает((

Оффлайн Peter_I

  • Старожил
  • *
  • Сообщений: 1798
    • Просмотр профиля
Re: exec cat >
« Ответ #1 : 25 Май 2014, 21:52:05 »
По сообщению об ошибке понятно, почему не работает.
cat не делает перенаправление, это делает shell.
Надо вызывать shell для выполнения одной команды и передавать ему cat с аргументами.
Пётр.

Оффлайн _XDD_

  • Автор темы
  • Участник
  • *
  • Сообщений: 108
    • Просмотр профиля
Re: exec cat >
« Ответ #2 : 25 Май 2014, 22:32:19 »
Peter_I,
Спасибо, утром попробую, уже с телефона просто ((
Ошибка не выдавалась, происходила подмена и ожидала чего то

whatdoyouneed

  • Гость
Re: exec cat >
« Ответ #3 : 26 Май 2014, 08:46:06 »
Для выполнения через shell (да, перенаправление вывода через ">" осуществляет оболочка), используется system.

system("cat in.txt in.txt2 > out.txt");

Оффлайн _XDD_

  • Автор темы
  • Участник
  • *
  • Сообщений: 108
    • Просмотр профиля
Re: exec cat >
« Ответ #4 : 27 Май 2014, 20:51:22 »
Andrey P.,
надо через подмену кода было сделать(exec)

Peter_I,
execlp("sh", "sh", "cat in.txt in.txt2 > out.txt")
не сработало

Оффлайн Peter_I

  • Старожил
  • *
  • Сообщений: 1798
    • Просмотр профиля
Re: exec cat >
« Ответ #5 : 27 Май 2014, 23:19:38 »
_XDD_,
У меня сработало это:
execlp("bash","bash","-c","cat in1 in2 > in3",(char *)0);
Пётр.

Оффлайн _XDD_

  • Автор темы
  • Участник
  • *
  • Сообщений: 108
    • Просмотр профиля
Re: exec cat >
« Ответ #6 : 05 Июнь 2014, 07:12:32 »
Peter_I,
спасибо большое)))

 

Страница сгенерирована за 0.06 секунд. Запросов: 25.