c编程如何将系统输出转换为char
c programming how to convert system output to char
我想知道是否有人可以帮助我:
我需要将系统命令的输出:whoami
变成一个变量。
示例:
char *a;
a = system("whoami");
printf("username = %s",a);
我已经尝试了一些方法,例如将命令输出打印到文本文件,如:whoami >> output.txt
,而不是让程序从该文件读取,但是我通过该方法遇到了错误。我还认为该方法有点混乱且不必要,因为我肯定 C 中必须有一种方法可以让我这样做。
这个问题可能重复,所以请根据需要进行标记(但如果有能力也请回答)
非常感谢:)
This 应该可以解决问题。我自己没有测试过,但我检查过它并列在 Linux 手册页中,所以我确定它是正确的。
如果你只想在 POSIX 环境中读取环境变量,你可以简单地调用 getenv:
http://man7.org/linux/man-pages/man3/getenv.3.html
#include <stdlib.h>
#include <stdio.h>
int main() {
char* username = getenv("USER");
printf("username = %s\n", username);
return 0;
}
如果你想要更复杂的东西,你可以使用popen:
http://man7.org/linux/man-pages/man3/popen.3.html 创建到进程的管道并从 stdout 读取,这个答案在这种情况下应该有所帮助:
C: Run a System Command and Get Output?
我想知道是否有人可以帮助我:
我需要将系统命令的输出:whoami
变成一个变量。
示例:
char *a;
a = system("whoami");
printf("username = %s",a);
我已经尝试了一些方法,例如将命令输出打印到文本文件,如:whoami >> output.txt
,而不是让程序从该文件读取,但是我通过该方法遇到了错误。我还认为该方法有点混乱且不必要,因为我肯定 C 中必须有一种方法可以让我这样做。
这个问题可能重复,所以请根据需要进行标记(但如果有能力也请回答)
非常感谢:)
This 应该可以解决问题。我自己没有测试过,但我检查过它并列在 Linux 手册页中,所以我确定它是正确的。
如果你只想在 POSIX 环境中读取环境变量,你可以简单地调用 getenv: http://man7.org/linux/man-pages/man3/getenv.3.html
#include <stdlib.h>
#include <stdio.h>
int main() {
char* username = getenv("USER");
printf("username = %s\n", username);
return 0;
}
如果你想要更复杂的东西,你可以使用popen: http://man7.org/linux/man-pages/man3/popen.3.html 创建到进程的管道并从 stdout 读取,这个答案在这种情况下应该有所帮助: C: Run a System Command and Get Output?