その他の OS 依存関数 [OS]

void exit( int code ); (stdlib.h)
void
_exit( int code );

プログラムを終了して、OS に戻ります。code には、0 〜 255 の終了コードを指定します。exit では、開いているファイルがすべて閉じられ、一時ファイルが削除されます。_exit では、即座にプログラムが終了します。

void

atexit( void(*func)(void) ); (stdlib.h)

main 関数から戻ったとき、および exit 関数を呼び出したときに、プログラムの終了前に呼び出される関数を登録します。関数は 32 個まで登録できます。後で登録した関数から先に呼び出されます。
void f1( void ) { printf( "exit process 1\n" ); }
void f2( void ) { printf( "exit process 2\n" ); }
main()
{ atexit( f1 );
  atexit( f2 );
}
結果 exit process 2
exit process 1

char* getenv( const char* name ); (stdlib.h)

環境変数 name の値を取得します。その名前の環境変数が設定されていない場合は、NULL を返します。

int system( const char* cmd ); (stdlib.h)

OS のコマンドを実行します。

cmd に NULL 以外を指定すると、そのコマンドがコマンド プロセッサに渡され、実行されます。成功すると -1 以外が返されます。失敗すると -1 が返され、errno に理由コードが設定されます。

cmd に NULL を指定すると、OS のコマンド プロセッサを使用できるかどうかがチェックされ、可能なら 1、不可能なら 0 が返されます。Light C では、環境変数 COMSPEC が存在するかどうかで、このチェックの結果が決まります。
system( "dir" );
system( "lc /?" );

int _system( const char* cmd, const char* param ); (stdlib.h)

コマンドを実行します。cmd には、起動する実行ファイルのパスを指定します。param には、cmd に渡すパラメータ文字列 (なければ NULL) を指定します。

この関数は、system() 関数とは異なり、コマンド プロセッサを使用しないで単純に実行ファイルを起動します。PATH 環境変数が使用されないため、現在のディレクトリにないファイルを起動するには、パスを明示的に指定する必要があります。また、コマンド プロセッサの内部コマンド ("dir" など) を実行することはできません。
_system( "lc.exe", NULL );
_system( "c:\bin\lc.exe", "/?" );

char far* _getpsp( void ); (stdlib.h)

実行中のプログラムの "プログラム セグメント プレフィックス" (PSP) のアドレスを取得します。PSP とは MS-DOS が規定する情報ブロックで、MS-DOS で実行中のすべてのプログラムに 1 つずつ付加されています。

size_t _rest_stack( void ); (stdlib.h)

現在残っているおおよそのスタック サイズを取得します。_min_stack も参照してください。

size_t _min_stack( void ); (stdlib.h)

最小になった時点で残っていたおおよそのスタック サイズを取得します。

void perror( char* str ); (stdio.h)

現在の errno の意味を説明するメッセージを stderr に出力します。str に NULL 以外を指定すると、メッセージの先頭にその文字列が出力されます。