KnowledgeHub
Questions
Tags
Users
Search
Alex Rivera
|
Logout
Edit Question
Title
Body
I am trying to spawn a process that executes a system command, while my own program still proceeds and two processes will run in parallel. I am working on linux. I looked up online and sounds like I should use exec() family. But it doesn't work quite as what I expected. For example, in the following code, I only see "before" being printed, ,but not "done". I am curious if I am issing anything? #include <unistd.h> #include <iostream> using namespace std; main() { cout << "before" << endl; execl("/bin/ls", "/bin/ls", "-r", "-t", "-l", (char *) 0); cout << "done" << endl; } [UPDATE] Thank you for your guys comments. Now my program looks like this. Everything works fine except at the end, I have to press enter to finish the program. I am not sure why I have to press the last enter? #include <unistd.h> #include <iostream> using namespace std; main() { cout << "before" << endl; int pid = fork(); cout << pid << endl; if (pid==0) { execl("/bin/ls", "ls", "-r", "-t", "-l", (char *) 0); } cout << "done" << endl; }
Tags (comma-separated)
Save Edits
Cancel