😸

[C] unsetenv 関数

に公開

機能

環境変数を削除する POSIX標準の関数[1]

使用例

unsetenv("MY_VAR"); とすれば環境変数が消える

\n は改行を表す エスケープシーケンス[2]

コード

unsetenv("MY_VAR");
全文
#include <stdio.h>
#include <stdlib.h>

void main() {
    setenv("MY_VAR", "Hello", 1); // 環境変数をセット
    printf("Before unsetenv: %s\n", getenv("MY_VAR"));
    unsetenv("MY_VAR");           // 環境変数を削除
    printf("After unsetenv : %s\n", getenv("MY_VAR")); // NULLになる
}

実行結果

Before unsetenv: Hello
After unsetenv : (null)

変数名を使って削除する

コード

char *name = "MY_VAR";
unsetenv(name);
全文
#include <stdio.h>
#include <stdlib.h>

void main() {
    setenv("MY_VAR", "OK", 1);
    char *name = "MY_VAR";
    printf("Before: %s\n", getenv(name));
    unsetenv(name);
    printf("After: %s\n", getenv(name));
}

実行結果

Before: OK
After: (null)
脚注
  1. unsetenv関数はC言語でOS環境変数を削除するPOSIX規格のライブラリ関数です。Windows等一部環境には存在しません。 ↩︎

  2. 改行やタブなど、画面に表示されない制御文字のこと。 ↩︎

Discussion