Я работаю над рудиментарной оболочкой, но в цикле ниже программа не проходит мимо выделенной строки (она сразу же зацикливается). Когда я прокомментирую это, весь блок завершается до повторения цикла. Что тут происходит?Почему cout предотвращает запуск следующего кода?
#include <iostream>
#include <string>
#include <stdlib.h>
using namespace std;
int main(int argc, char *argv[]) {
string input;
const char *EOF="exit";
string prompt=getenv("USER");
prompt.append("@ash>");
while(true) {
int parent=fork();
if (!parent) {
cout << prompt; //The program never gets past this point
getline(cin,input);
if (!input.compare(EOF))
exit(0);
cout << input << '\n';
execlp("ls", "-l", NULL);
return 0;
}
else
wait();
}
}
Это должно быть помечен C++ не с. – Hersha
Вы правы, хорошо поймайте. – user1209326
Это отлично работает для меня ... –