我想在我的C程序中有一个提示。如何打印用户名和主机名?在bash脚本中,我使用了$ USER,但我不知道如何将其与prinf()函数连接。请帮助,我没有发现任何地方有帮助。
最佳答案
您可以使用简单的高级:
#include <stdio.h>
#include <stdlib.h>
int main () {
char* hostname = getenv("HOST");
char* user = getenv("USER");
if(hostname == NULL) return 1; //hostname reading problem
if(user == NULL) return 2; //username reading problem
printf("I'm user %s on %s.\n", user, host);
}
但这取决于两个环境变量是否总是可用(例如,当您将代码用作登录shell,var是HOSTNAME而不是HOST时...)。
所以...
我建议忽略变量,并询问系统:
#include <stdio.h>
#include <unistd.h>
#define MAX_HOSTNAME_LENGTH 255
int main () {
char hostname[MAX_HOSTNAME_LENGTH + 1];
char* user = getlogin();
hostname[MAX_HOSTNAME_LENGTH] = 0; //null-terminate in case hostname is too long
if(gethostname(hostname, MAX_HOSTNAME_LENGTH) != 0) return 1; //hostname reading problem
if(user==NULL) return 2; //username reading problem
printf("I'm user %s on %s.\n", user, hostname);
return 0;
}
关于c - Linux C脚本-显示用户,主机名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48549825/