C言語学習ポータル(無料版) 学習コンテンツ 関数リファレンス system

🔧 標準ライブラリ ・ stdlib.h ・ C89

system の使い方

C言語 標準ライブラリ関数リファレンス(無料公開)

書式

int system(const char *command);

どんな関数か

OSのシェルを介して外部コマンドを実行する。コマンド文字列にユーザー入力をそのまま連結すると任意コマンド実行(コマンドインジェクション)につながる重大な脆弱性になる危険な関数。 実行結果(終了ステータス)はコマンド文字列を解釈するシェルの仕様に依存し、処理系によって形式が異なる。

使用例

#include <stdlib.h>
int main(void) {
    system("echo hello");
    return 0;
}

つまずきやすい注意点

⚠️ ユーザー入力を含む文字列を渡すとシェル経由で任意のコマンドを実行されうる。信頼できない入力は絶対に渡さない。

アプリの関数リファレンスで引く(無料・登録不要) 関数一覧へ

system と一緒に使う関数

getenv環境変数の値を取得する。見つからなければNULLを返す。設定ファイルのパスやAPIキーなど、実行環境ごとに変わる値を取得…

同じ分類(標準ライブラリ)の関数

abort abs atexit atof atoi bsearch calloc div exit free getenv labs malloc qsort rand realloc

もっと先へ:ポインタ・メモリ・ファイル入出力・セキュアコーディングを含む全26トラックと、段位検定・模試のフルセットは完全版に収録しています。

完全版(BOOTH)を見る