Cで環境変数を印刷するにはどうすればいいですか?変数のみ。Cで環境変数を使用せずに印刷
int main(int argc, char **argv, char **envp)
{
while(*envp!=NULL) {
printf("%s\n", *envp);
envp++;
}
system("pause");
return 0;
}
Cで環境変数を印刷するにはどうすればいいですか?変数のみ。Cで環境変数を使用せずに印刷
int main(int argc, char **argv, char **envp)
{
while(*envp!=NULL) {
printf("%s\n", *envp);
envp++;
}
system("pause");
return 0;
}
環境変数の形式はNAME=value
なので、最大文字数は=
文字までにする必要があります。
#include <stdlib.h>
#include <stdio.h>
int main(int argc, char **argv, char **envp)
{
while(*envp!=NULL) {
char * len = strchr(*envp, '=');
if (len == NULL)
printf("%s\n", *envp);
else
printf("%.*s\n", len - *envp, *envp);
envp++;
}
system("pause");
return 0;
}
問題ありません。私の答えがあなたを助けたら、それを答え、またはupvoteとして選択してください。 –
'ptrdiff_t'は書式文字列の' * 'に対して有効な型ですか?私はそれが 'int'か' size_t'を期待していると思います。 – Lundin
正直なところ、私は分かりません - [this](https://linux.die.net/man/3/printf)によると、 'int'が必要です。 –
なぜあなただけの値を取り除くことができない、例えば'strtok'で' = 'をデリミタとして使用していますか? –
特に 'strtok'のようなものではなく、' getenv'を介して取得した*元の*環境を使いこなすべきではないことに注意してください。コピーを作成するか、より邪魔にならない方法を使用します。 – tofro