問題タブ [getenv]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
1432 参照

c - getenv と env を使用しても、同じ結果は得られません。

名前がstdinによって与えられるすべての環境変数を出力するCプログラムがあります。$PATH、$USER などの変数を出力しますが、Linux シェルで自分で定義した環境変数は表示されません...たとえば、~.bashrc で MYTEST=test_is_working をエクスポートしてから、bashrc をソースしました (source ~/.bashrc)。プログラムが getenv で test_is_working を返すことを期待していましたが、そうではありません。

それが返されます:envが見つかりません

一方、ターミナルを開いて「env」と入力すると、MYTEST=test_is_working となります。

同様の投稿を見ました: Using getenv function where the solution is to launch the program from the shell. しかし、Qtcreator で実行およびデバッグしているため、できません。

どこが間違っているのかわからないのですが、どなたか教えていただけないでしょうか?

ありがとう

0 投票する
0 に答える
259 参照

mysql - getenv() は MySQL UDF 内で null を返します

C/C++ 関数getenv()で奇妙な問題が発生しています。この関数は、Linux システム (Linux Mint 16 Cinnamon 64 ビット) 上の MySQL UDF 内で使用されます。/etc/environmentファイルを編集して JAVA_HOME 環境変数をシステム全体に設定しました。ユーザーとルートの両方でenvコマンドを使用すると、他のすべての変数とともにシェルに出力されます。コードは単純で、次のようになります。

UDF は条件で永続的にエラー メッセージを返すため、javaHome変数は常に null です。別の単純な C++ プログラムを作成し、cpp ファイルをコンパイル済み UDF ライブラリが存在する MySQL プラグイン ディレクトリ ( /usr/lib/mysql/plugin ) にドロップしました。

このコードは、期待どおりに変数の値、つまり JRE へのパスを返します。UDF コードは私の Windows システムでは正常に動作しますが、Unix システムで動作させるには、コードを少し変更し、GetEnvironmentVariableA()関数をgetenv()に置き換える必要がありました。何が問題なのかわかりません。任意のポインタをいただければ幸いです。

編集:「HOME」変数の結果をテストしたところ、出力は不思議なことに、 /root/ではなく/etc/mysql/でした。UDF には独自の環境などがありますか?

0 投票する
3 に答える
2576 参照

c - getenv が COLUMNS と LINES で機能しない

プログラムの列数と行数を取得しようとしています。そのために次のコードを使用しています。

問題は、これを実行すると両方で null になることです。PATHまたはなどの他の環境変数でこれを実行するとUSER、正常に動作します。

私が奇妙だと思うのは、実行echo $COLUMNSecho $LINES同じシェルからの両方が正常に機能することです。

私のプログラムがこれら 2 つの環境変数を取得できないのはなぜですか。

0 投票する
1 に答える
244 参照

c - Linux 環境変数と C プロジェクト getenv()

Cプロジェクトに環境変数を使用する必要があるため、ターミナルでこれを行いました:

file.confは私が作成したファイルです。

ターミナルで行うenvと、リストに「FILE_CONFIG」とその値(/home/pc/file.conf)が表示されます。path_to_config -> /home/pc/file.conf SO に割り当てたい.Cプログラムでこれを行いました:

しかし、getenvFILE_CONFIG へのパスは返されません。デバッグ モードで見ると、path_to_config の値は 0x0 です。他の環境変数を試してみましたが、特にエクスポートしたものではできませんでした。

0 投票する
0 に答える
116 参照

getenv - getenv が異なるアドレスを返す

getenv("USER") は、2 つの異なる関数から呼び出されると、2 つの異なるアドレスを返します。

0x7fff60e15e79 0x60e15e79

したがって、2 番目のケースでは、7fff の部分が欠落しています。これは、2 番目のケースで文字列を印刷しようとするとクラッシュにつながります。なぜこれが起こっているのか誰にも分かりますか?

0 投票する
1 に答える
1791 参照

macos - OS X Yosemite での setenv と getenv の奇妙な動作

環境変数を設定すると

次の方法で値を取得できます

「テスト」を返しますが、単純です

結果は空です。同じターミナルでも、新しいターミナルでも。

背景: Yosemite 10.10 はシステム全体の設定で /etc/launchd.conf をサポートしなくなったため、launchd.conf を介した環境変数の設定は OS X Yosemite/El Capitan/macOS Sierra では機能しなくなりましたか? かなり有望に見えますが、 経由で環境変数にアクセスする必要がありますが$VARNAME、これは私の場合は機能しません。

0 投票する
0 に答える
118 参照

c - GNOME_DESKTOP_SESSION_IDなしでCでGnomeを検出していますか?

C でユーザーのデスクトップ環境 (Gnome、KDE ​​など) を検出しようとしています。

現在、私は次のようなことをしています:

ただし、私のシステムでGNOME_DESKTOP_SESSION_IDは、「this-is-deprecated」と定義されています。

Gnome の存在を確認できる別の環境変数 (またはまったく異なる方法) はありますか?

0 投票する
1 に答える
7477 参照

c - getenv() セグメンテーション違反

私は宿題をしなければなりませんが、C のパスを取ることができません。

このコードを実行すると、「セグメンテーション エラー (コア ダンプ)」が発生しました。私のOSはUbuntu 14.04 LTSです。