Загрузить файлы в «src»

This commit is contained in:
8nlight 2023-10-04 13:57:15 +03:00
parent 2990eff098
commit a78062199b
2 changed files with 67 additions and 1 deletions

View File

@ -72,4 +72,3 @@ int main(const int argc, char **argv) {
return 0;
}

67
src/uname.c Normal file
View File

@ -0,0 +1,67 @@
#include <stdio.h>
#include <errno.h>
#include <string.h>
#include <sys/utsname.h>
/* sys node release version machine */
int flags[] = {0, 0, 0, 0, 0};
enum {
O_SYS,
O_NODE,
O_RELEASE,
O_VERSION,
O_MACHINE
};
int main(const int argc, const char **argv) {
for (int i = 0; i < argc; i++) {
if (!strcmp("-a", argv[i])) {
for (size_t i = 0; i < sizeof(flags) / sizeof(flags[0]); i++)
flags[i] = 1;
}
else if (!strcmp("-s", argv[i]))
flags[O_SYS] = 1;
else if (!strcmp("-n", argv[i]))
flags[O_NODE] = 1;
else if (!strcmp("-r", argv[i]))
flags[O_RELEASE] = 1;
else if (!strcmp("-v", argv[i]))
flags[O_VERSION] = 1;
else if (!strcmp("-m", argv[i]))
flags[O_MACHINE] = 1;
else if (!strcmp("-h", argv[i])) {
printf("uname [-a] [-s] [-n] [-r] [-v] [-m]\n");
return 0;
}
}
struct utsname uts;
if (uname(&uts)) {
fprintf(stderr, "uname: %s", strerror(errno));
return 1;
}
if (flags[O_SYS] || argc == 1)
printf("%s ", uts.sysname);
if (flags[O_NODE])
printf("%s ", uts.nodename);
if (flags[O_RELEASE])
printf("%s ", uts.release);
if (flags[O_VERSION])
printf("%s ", uts.version);
if (flags[O_MACHINE])
printf("%s ", uts.machine);
putchar('\n');
}