Перенаправление в самостоятельно созданной оболочке Linux [закрыто]

-1
28.11.2016, 00:41
1 ответ

У вас есть простая логическая ошибка: пока вы получаете out_fd_present на true , когда вы обнаруживаете > или >> , вы никогда не сбрасываете его на false (например, в верхней части цикла).

Хотя я предполагаю, что ваша «оболочка» - это игрушечная оболочка, я должен упомянуть, что у вас также есть много других проблем. Например, у вас утечка out_fd в родительском процессе и save_out (для чего это?) В дочернем процессе. У вас есть ошибка, при которой вы можете вызвать strcmp для строки NULL . И еще один для chdir . Ваш синтаксис и функциональность также отличаются от того, что «должна» делать оболочка (положение операторов перенаправления, umask, интервалы и токенизация и т. Д.). Не говоря уже о непоследовательном стиле (использовались и уродливый верблюжий футляр, и футляр для змеи). Чтобы реализовать оболочку, даже игрушечную, вам, вероятно, сначала следует начать с хорошего дизайна.

1
28.01.2020, 05:10

Теги

Похожие вопросы