ITメモ
C言語 / Programming Language C
開発環境 / Development Environment
【Mac】Xcode【Win】Visual Stadio
基礎 / Basic
About C言語書式コメントコンパイルとリンクメイクファイル / Makefileヘッダファイル変数定数型 / Type配列 / Arrayポインタ / Pointer演算子 / Operator制御文 / Control Statement関数指定子 / 修飾子構造体と共用体 / Structure & Unionプリプロセッサ / PreprocessorthisキーワードTypedef
入出力 / Input & Output
入出力入力フォーマット指定子出力フォーマット指定子「printf」関数を使って文字を出力・表示させる方法「printf_s」関数を使って文字を出力・表示させる方法「scanf」関数を使って入力させる方法「scanf_s」関数を使って入力させる方法「getchar」関数を使って「1文字」だけ入力させる方法「gets」関数を使って「文字列」を入力させる方法
文字列 / String
文字列 / String「snprintf」関数で「配列」に文字列を書き込む方法
ネットワーク / Network
memset - メモリブロックのセット
メモリー管理
メモリー
オペレーション / Operation
ファイルを操作をする方法コマンドラインプログラム / Command-Line Programプロセス / Processソケット通信 / Socket Communication
用語集 / Glossary
サブルーチン / Subroutineスタックとキュー / Stack & Cueスレッド / Thread
C言語標準ライブラリ(ヘッダファイル)
C言語標準ライブラリ【assert.h】 - 診断機能【complex.h】 - 複素数計算【ctype.h】 - 文字操作【errno.h】 - エラー【fenv.h】 - 浮動小数点環境【float.h】 - 浮動小数点型の特性【inttypes.h】 - 整数型の書式の変換【iso646.h】 - 代替つづり(Alternate spellings)【limits.h】 - 整数型の大きさ【locale.h】 - 文化圏固有操作【math.h】 - 数学【setjmp.h】 - 非局所分岐【signal.h】 - シグナル操作【stdalign.h】 - アライメント【stdarg.h】 - 可変個数の実引数【stdatomic.h】 - アトミック操作【stdbool.h】 - 論理型および論理値【stddef.h】 - 共通の定義【stdint.h】 - 整数型【stdio.h】 - 入出力【stdlib.h】 - 一般ユーティリティ【stdnoreturn.h】 - _Noreturn【string.h】 - 文字列操作【tgmath.h】 - 型総称数学関数(Type-generic math)【threads.h】 - マルチスレッド【time.h】 - 日付及び時間【uchar.h】 - Unicodeユーティリティ【wchar.h】 - 多バイトおよびワイド文字拡張ユーティリティ【wctype.h】 - ワイド文字種分類およびワイド文字大文字小文字変換ユーティリティ
C言語ライブラリ(ヘッダファイル)
C言語ヘッダファイル【winsock.h】





【C言語】プロセス / Process

【C言語】
プロセス / Process




インクルードファイル

  • process.h
  • wchar.h ----- ワイド文字数を使用する場合に必要




関数

子プロセスの作成
intptr_t _spawnl ( int mode, const char *cmdname, const char *arg0, const char *arg1, …, NULL);
intptr_t _spawnle ( int mode, const char *cmdname, const char *arg0, const char *arg1, …, NULL, const char *const *envp);

intptr_t _spawnlp ( int mode, const char *cmdname, const char *arg0, const char *arg1, …, NULL);
intptr_t _spawnlpe ( int mode, const char *cmdname, const char *arg0, const char *arg1, …, NULL, const char *const *envp);

intptr_t _spawnv ( int mode, const char *cmdname, const char *const *argv);
intptr_t _spawnve ( int mode, const char *cmdname, const char *argv, const char *const *envp);

intptr_t _spawnvp ( int mode, const char *cmdname, const char *const *argv);
intptr_t _spawnvpe ( Int mode, const char *cmdname, const char *argv, const char *const *envp);

intptr_t _wspawnl ( int mode, const wchar_t *cmdname, const wchar_t *arg0, const wchar_t *arg1, …, NULL);
intptr_t _wspawnle ( int mode, const wchar_t *cmdname, const wchar_t *arg0, const wchar_t *arg1, …, NULL, const wchar_t *const *envp);

intptr_t _wspawnlp ( int mode, const wchar_t *cmdname, const wchar_t *arg0, const wchar_t *arg1, …, NULL);
intptr_t _wspawnlpe ( int mode, const wchar_t *cmdname, const wchar_t *arg0, const wchar_t *arg1, …, NULL, const wchar_t *const *envp);

intptr_t _wspawnv ( int mode, const wchar_t *cmdname, const wchar_t *argv);
intptr_t _wspawnve ( int mode, const wchar_t *cmdname, const wchar_t *argv, const wchar_t *const *envp);

intptr_t _wspawnvp ( int mode, const wchar_t *cmdname, const wchar_t *argv);
intptr_t _wspawnvpe ( int mode, const wchar_t *cmdname, const wchar_t *argv, const wchar_t *const *envp);



modeの定数

_P_OVERLAY Unix系のOSでの「exec」系の関数と同じ動作。 関数を呼び出したプロセスは上書きされ、関数を呼び出した時点でプログラムが切り替わる
_P_WAIT 新しいプロセスが完了するまで待機する。 関数の戻り値はプロセスの終了コードとなる。
_P_NOWAIT 新しいプロセスが完了するまで待機せずに制御が戻る。 親プロセスと子プロセスは同時に動作する。 関数の戻り値は、プロセスハンドルとなる。
_P_NOWAITO
_P_DETACH 親プロセスの動作を継続し、子プロセスはバックグラウンドで動作する。



マクロ

_spawnl, _wspawnl _tspawnl
_spawnle, _wspawnle _tspawnle
_spawnlp, _wspawnlp _tspawnlp
_spawnlpe, _wspawnlpe _tspawnlpe
_spawnv, _wspawnv _tspawnv
_spawnve, _wspawnve _tspawnve
_spawnvp, _wspawnvp _tspawnvp
_spawnvpe, _wspawnvpe _tspawnvpe



パイプによるプロセス間通信

_pipe (fds, 256, _O_BINARY); パイプの作成 書き込み、読み込みのディスクリプタを作成
_write (ディスクリプタ、 送信データ格納変数、 変数サイズ); パイプ通信の書き込み
atoi (変数); 読み込み用のディスクリプタの作成
_read (ディスクリプタ、 受信データ格納変数、 変数サイズ); パイプ通信の読み込み
_close(ディスクリプタ); パイプに使ったファイルディスクリプタを閉じる