'./anagram listen silent'
- строка, не выполняющая программу.Чтобы поймать результат запуска программы, используйте $()
, например $(./anagram listen silent)
.
Однако ваш код на C не принимает этот тип передачи аргументов.Вы полностью читаете ввод из stdin
, а не из параметра командной строки.
Способ принятия параметра командной строки заключается в объявлении основной функции int main()
как int main(int argc, char *argv[])
(char **argv
также в порядке), затем используйте argv
, чтобы получить параметр командной строки.
Ваш код принимает входные данные только от stdin
(используя scanf
), тогда вам, возможно, придется пропустить ввод, вызывая программу наподобие echo -e "listen\nsilent" | ./anagram
,Обернуть с помощью $()
, чтобы поймать вывод, тоже нормально.
Обновление: Заметив, что вы хотите получить возвращаемое значение выполненной программы вместо вывода stdout
, тогда выможно использовать > /dev/null
, чтобы съесть вывод stdout
, затем использовать $?
, чтобы получить возвращаемое значение, например echo -e "listen\nsilent" | ./anagram > /dev/null; echo $?
.