RSS

C: fork /execv 関数でプロセスを起動

31 8月
/******************************************************

     form / execv 関数のテスト

 ******************************************************/
#include <unistd.h>
#include <stdio.h>
#include <stdlib.h>
#include <sys/wait.h>

/* コマンドの定義 */
char *args[] = {"ls", "-l", "/usr", NULL};

int main()
{
  pid_t pid;

  /* fork 関数でプロセスを親子に分割する。*/
  if ((pid = fork()) == 0)
  {
    /* 子プロセス */
    execv("/bin/ls", args);
  }
  else if (pid > 0)
  {
    /* 親プロセス */
    puts("New process started\n");
    wait(0);
  }

  return EXIT_SUCCESS;
}

実行例

$ ./execvTest
New process started

total 76
drwxr-xr-x   2 root root 36864 Aug 31 09:55 bin
drwxr-xr-x   2 root root  4096 Apr 13 05:14 games
drwxr-xr-x  47 root root 12288 Aug 31 09:55 include
drwxr-xr-x  71 root root  4096 Aug 28 09:58 lib
drwxr-xr-x  10 root root  4096 Aug 10 05:34 local
drwxr-xr-x   2 root root  4096 Aug 31 09:55 sbin
drwxr-xr-x 150 root root  4096 Aug 17 07:01 share
drwxr-xr-x   8 root root  4096 Aug 30 11:18 src
 
コメントする

投稿者: : 2016/08/31 投稿先 C, gcc

 

タグ:

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中

 
%d人のブロガーが「いいね」をつけました。