2

CソースコードでLinuxコマンドを使いたい。

この機能は使えSystem()ますか?これはLinuxで可能ですか?

System()関数を使用できない場合はどうすればよいですか?「tarxvfexample.tar」したい。

4

2 に答える 2

3

使用system()できるexec()機能

于 2012-11-30T02:33:53.637 に答える
1

シェル コマンドを実行するだけで戻り値を探したくない場合は、system() 関数呼び出しを使用できます。

システム コールの使用はお勧めできません (システムのマニュアル ページを参照してください)。fork() を実行した後に子プロセスで呼び出される exec() を使用することをお勧めします。

次の代替手段は 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);
于 2012-11-30T03:37:29.573 に答える