Reputation: 37
I want to use Linux commands in C source code.
Can I use the System()
function? Is this possible on Linux?
If I can't use System() function, what should I do? I want to "tar xvf example.tar".
Upvotes: 2
Views: 443
Reputation: 4880
If you just want to execute shell command and not looking for any return value then you can use system() function call.
Using system call is not advisable (see system man page). I would recommend you using exec() which should be invoked in child process after doing fork().
The next alternative can be using popen().
piff = (FILE *)popen("ls -l", "r");
if (piff == (FILE *)0)
return (-1);
while ((i = read(fileno(piff), buff, sizeof (buf))) == -1) {
if (errno != EINTR) {
break;
}
(void)pclose(piff);
Upvotes: 1