Member 12981265 Ответов: 1

Как заставить pipe() работать в C


nvm-разобрался-
nvm -figured it out-

nvm -figured it out-
nvm -figured it out-


Что я уже пробовал:

-- НВМ все понял --
nvm-разобрался-
nvm -figured it out-
nvm -figured it out-

NotPolitcallyCorrect

Это ваш вопрос: "Могут ли люди догадаться, что значит неправильно работать?"?

Suvendu Shekhar Giri

Не ясно!
В чем проблема?
Поделитесь только соответствующим кодом, а не целым файлом.

Richard MacCutchan

Вы не можете использовать символ канала ( | ) в командной строке, так как он будет интерпретирован оболочкой, и ваше приложение его не увидит. Вам нужно сбежать от него через любую доступную оболочку.

1 Ответов

Рейтинг:
0

KarstenK

Может быть, " | " - это какой - то командный токен, который нарушает поток данных

Вот вы петляете через него

if(!strcmp(args[i],"|")){
Используйте отладчик, чтобы найти и изолировать проблемы. Проверьте, пока в какой строке кода или функции все в порядке и где возникают проблемы. Часто помогает сделать еще несколько выходных данных в командной строке, чтобы понять это.


Member 12981265

Я использовал if (! strcmp(args[i],"|")){

для cd, <, >: if(!strcmp(args[i],"cd")){ и работает нормально.
Это не помогает, потому что я не знаю, как отлаживать трубы. Вот почему я прошу помощи для трубы. Спасибо.