uname os detection add

This commit is contained in:
Your Name 2023-12-21 19:09:53 +03:00
parent 79ccb4ca4d
commit ea17f21ebf
1 changed files with 26 additions and 2 deletions

View File

@ -4,6 +4,26 @@
#include <unistd.h>
#include <sys/utsname.h>
#if defined(__ANDROID__)
#define OS_NAME "Android"
#elif defined(__linux__)
#define OS_NAME "linux"
#elif defined(__OpenBSD__)
#define OS_NAME "OpenBSD"
#elif defined(__FreeBSD_)
#define OS_NAME "FreeBSD"
#elif defined(__NetBSD_)
#define OS_NAME "NetBSD"
#else
#define OS_NAME "unknow"
#endif
int main(int argc, char **argv) {
struct utsname uts;
if (uname(&uts)) {
@ -19,7 +39,7 @@ int main(int argc, char **argv) {
unsigned int a_flag = 0;
int opt;
while ((opt = getopt(argc, argv, "asnrvm")) != -1) {
while ((opt = getopt(argc, argv, "asnrvmo")) != -1) {
switch (opt) {
case 'a':
a_flag = 1;
@ -51,10 +71,14 @@ int main(int argc, char **argv) {
case 'm':
printf("%s ", uts.machine);
/* fallthrough */
case 'o':
printf("%s ", OS_NAME);
break;
default:
printf("uname\n\t[-a All] [-s Sys]\n\t[-n Nodename] [-r Release]\n\t[-v Version] [-m Machine]\n");
printf("uname\n\t[-a All] [-s Sys]\n\t[-n Nodename] [-r Release]\n\t[-v Version] [-m Machine]\n\t[-o Os name]\n");
return 0;
}
}