From b6e3f6cb5d1051777c35988f201e6730525e3389 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=AB=8F=E8=A8=AA=E5=AD=90?= Date: Wed, 19 Jun 2024 23:52:56 +0900 Subject: =?UTF-8?q?=E6=8E=83=E9=99=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/user.c | 62 ++++++++------------------------------------------------------ 1 file changed, 8 insertions(+), 54 deletions(-) (limited to 'src/user.c') diff --git a/src/user.c b/src/user.c index a3805d5..0f11cec 100644 --- a/src/user.c +++ b/src/user.c @@ -1,64 +1,18 @@ #include "user.h" +#include "common.h" -#include -#include - -void run_user_command(const char *command) { - char buf[64]; -#if defined(__NetBSD__) || defined(__FreeBSD__) - FILE *p = popen(command, "r"); - if (!p) { - snprintf(buf, sizeof(buf), "「%s」コマンドを見つけられません。", command); - perror(buf); - return; - } - - while (fgets(buf, sizeof(buf), p) != NULL) { - printf("%s", buf); - } - - pclose(p); - // -#else - FILE *f = fopen(command, "r"); - if (!f) { - snprintf(buf, sizeof(buf), "「%s」ファイルを見つけられません。", command); - perror(buf); - return; - } - - while (fgets(buf, sizeof(buf), f) != NULL) { - printf("%s", buf); - } - - fclose(f); -#endif -} - -void display_user_name() { - char buf[128]; - FILE *p = popen("whoami", "r"); - if (!p) { - fprintf(stderr, "「whoami」コマンドを実効に失敗"); - return; - } - - while (fgets(buf, sizeof(buf), p) != NULL) { - buf[strcspn(buf, "\n")] = '\0'; - printf("%s", buf); - } - - pclose(p); +const char *display_user_name() { + return run_command_s("whoami"); } -void display_user_host() { +const char *display_user_host() { #if defined(__OpenBSD__) - run_user_command("/etc/myname"); + return run_command_s("cat /etc/myname"); #elif defined(__NetBSD__) - run_user_command("hostname"); + return run_command_s("hostname"); #elif defined(__FreeBSD__) - run_user_command("sysctl -n kern.hostname"); + return run_command_s("sysctl -n kern.hostname"); #else - run_user_command("/etc/hostname"); + return run_command_s("cat /etc/hostname"); #endif } -- cgit v1.2.3