Guest User

Untitled

a guest
Jun 19th, 2018
66
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.35 KB | None | 0 0
  1. #include <sys/utsname.h>
  2.  
  3. #include <stdio.h>
  4. #include <stdlib.h>
  5.  
  6. int main(int argc, char **argv)
  7. {
  8. int c;
  9. int kernel_name = 0, nodename = 0, kernel_release = 0,
  10. kernel_version = 0, machine = 0;
  11. struct utsname sysname;
  12.  
  13. if (uname(&sysname) == -1) {
  14. printf("An unknown error occured.\n");
  15. }
  16.  
  17. while (--argc > 0)
  18. if ((*++argv)[0] == '-')
  19. while (c = *++argv[0])
  20. switch (c) {
  21. case 'a':
  22. kernel_name = 1;
  23. nodename = 1;
  24. kernel_release = 1;
  25. kernel_version = 1;
  26. machine = 1;
  27. break;
  28. case 's':
  29. kernel_name = 1;
  30. break;
  31. case 'n':
  32. nodename = 1;
  33. break;
  34. case 'r':
  35. kernel_release = 1;
  36. break;
  37. case 'v':
  38. kernel_version = 1;
  39. break;
  40. case 'm':
  41. machine = 1;
  42. break;
  43. default:
  44. printf("Unknown option.\n");
  45. printf("Usage: uname -asnrvm\n");
  46. exit(0);
  47. }
  48.  
  49. if (!kernel_name && !nodename && !kernel_release && !kernel_version &&
  50. !machine) {
  51. printf("Usage: uname -asnrvm\n");
  52. exit(0);
  53. }
  54.  
  55. if (kernel_name)
  56. printf("%s ", sysname.sysname);
  57.  
  58. if (nodename)
  59. printf("%s ", sysname.nodename);
  60.  
  61. if (kernel_release)
  62. printf("%s ", sysname.release);
  63.  
  64. if (kernel_version)
  65. printf("%s ", sysname.version);
  66.  
  67. if (machine)
  68. printf("%s ", sysname.machine);
  69.  
  70. putchar('\n');
  71.  
  72. return 0;
  73. }
Add Comment
Please, Sign In to add comment