out.txt", NULL); execl("/bin/cat", "cat in.txt in.txt2 > out.txt", NULL); не работает((" /> out.txt", NULL); execl("/bin/cat", "cat in.txt in.txt2 > out.txt", NULL); не работает((" /> exec cat > - Ubuntu.ru

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


Считаете, что Ubuntu недостаточно дружелюбна к новичкам?
Помогите создать новое Руководство для новичков!

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

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

  • Старожил
  • *
  • Сообщений: 3031
    • Просмотр профиля
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

  • Старожил
  • *
  • Сообщений: 3031
    • Просмотр профиля
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.062 секунд. Запросов: 25.