HoSik Park
HoSik Park

Reputation: 37

Using linux commands in C source code

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

Answers (2)

Viswesn
Viswesn

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

bhuang3
bhuang3

Reputation: 3633

You can use system() and exec() functions

Upvotes: 3

Related Questions