spawnv

[機能]

  新しい子プロセスを生成して実行します.引数の数が可変(未知)のときに使用します.子プロセスの終了コードを返します.

[形式]
#include <stdio.h>
#include <process.h>

int spawnv(int mode, char *cmd, char **argv)
	mode : 以下のいずれかの値を使用します
			_P_OVERLAY : 親プロセスを子プロセスでオーバーレイし,親プロセスを破壊
			_P_WAIT : 子プロセスの実行が完了するまで親プロセスの実行を一時停止
	cmd : 子プロセスとして実行されるファイル名
	arg0,・・・ : 引数の並び.通常,argv[0] は実行されるファイル名へのポイ
	           ンタです.また,引数が n 個の場合,argv[n+1] は引数並びの
	           終端を示す NULL ポインタでなければなりません.		
[使用例]

  1. 引数を出力するだけのプログラムを子プロセスとして実行します.
    #include <stdio.h>
    #include <process.h>
    
    int main()
    {
    	char *s[3];
    
    	spawnl(_P_WAIT, "test", "test", "data1", NULL);
    	spawnl(_P_WAIT, "test", "test", "data2", NULL);
    
    	s[0] = "test";
    	s[1] = "data3";
    	s[2] = NULL;
    
    	spawnv(_P_WAIT, "test", s);
    
    	s[1] = "data4";
    
    	spawnv(_P_WAIT, "test", s);
    
    	return 0;
    }
    
      以下,子プロセスとして実行されるプログラム(ファイル名:test.exe)
    
    #include <stdio.h>
    
    int main(int argc, char *argv[])
    {
    	printf("%s\n", argv[1]);
    
    	return 0;
    }
    			
    (出力)
    data1
    data2
    data3
    data4			
[参照]

spawnl, exit

菅沼ホーム 本文目次 演習問題解答例 付録目次 索引