日本-日本語
日本HPホーム 製品 & サービス OpenVMS製品情報
≫  お問い合わせ


OpenVMS マニュアル


 

OpenVMS ドキュメント
ライブラリ

タイトル
目次
まえがき
リファレンス・セクション
   ≫ライブラリ関数一覧
索引
PDF
OpenVMS ホーム

HP OpenVMS
HP C ランタイム・ライブラリ・リファレンス・マニュアル (下巻)


目次 索引




指定された文字列を,コマンド・プロセッサで実行させるためにホスト環境に渡します。この関数は非リエントラントです。

形式

#include <stdlib.h>

int system (const char *string);


引数



string

実行する文字列へのポインタ。 string が NULL である場合には,ゼロ以外の値が返されます。 string は DCL コマンドであり,イメージの名前ではありません。イメージを実行するには,いずれかの execルーチンを使用してください。

説明

system関数はサブプロセスをスポーンし,そのサブプロセスの中で, string で指定されたコマンドを実行します。 system関数は,サブプロセスが完了するのを待ってから,関数の戻り値としてサブプロセス・ステータスを返します。

サブプロセスは, system呼び出しの中で, vforkの呼び出しによってスポーンされます。このため, systemの呼び出しは, vforkの呼び出しの後,それに対応する exec関数の呼び出しの前に行うべきではありません。

OpenVMS Version 7.0 およびそれ以降のシステムでは, <stdlib.h>をインクルードし, _POSIX_EXIT 機能テスト・マクロを設定してコンパイルを行うと, system関数が返すステータスは,子を待つために waitpidを呼び出したときと同じようになります。このため,WIFEXITED および WEXITSTATUS マクロ ( wait* ルーチンの説明を参照) を使用して, 0〜255 の範囲の終了ステータスを取得するようにしてください。

_POSIX_EXIT 機能テスト・マクロの設定は, /DEFINE_POSIX_EXIT を使用するか,ファイルの先頭で,他のファイルをインクルードする前に #define _POSIX_EXIT を指定することによって行います。


戻り値

ゼロ以外の値 string が NULL だった場合には, system 関数がサポートされていることを示す値 1 が返されます。 string が NULL でなければ,値はサブプロセスの OpenVMS リターン・ステータスです。


#include <stdlib.h> 
#include <stdio.h> 
#include <unistd.h>     /* write, close */ 
#include <fcntl.h>      /* Creat */ 
 
main() 
{ 
    int status, 
        fd; 
 
    /* Creat a file we are sure is there        */ 
 
    fd = creat("system.test", 0); 
    write(fd, "this is an example of using system", 34); 
    close(fd); 
 
    if (system(NULL)) { 
        status = system("DIR/NOHEAD/NOTRAIL/SIZE SYSTEM.TEST"); 
        printf("system status = %d\n", status); 
    } 
    else 
        printf("system() not supported.\n"); 
} 

この例のプログラムを実行すると,次の結果が出力されます。

DISK3$:[JONES.CRTL.2059.SRC]SYSTEM.TEST;1 
                           1 
system status = 1 


目次 索引

© 2012 Hewlett-Packard Development Company, L.P.