Advertisement
Guest User

Untitled

a guest
Jan 17th, 2019
81
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.59 KB | None | 0 0
  1. /* open/fcntl.  */
  2. #define O_ACCMODE      0003
  3. #define O_RDONLY         00
  4. #define O_WRONLY         01
  5. #define O_RDWR           02
  6. #ifndef O_CREAT
  7. # define O_CREAT       0100 /* Not fcntl.  */
  8. #endif
  9. #ifndef O_EXCL
  10. # define O_EXCL        0200 /* Not fcntl.  */
  11. #endif
  12. #ifndef O_NOCTTY
  13. # define O_NOCTTY      0400 /* Not fcntl.  */
  14. #endif
  15. #ifndef O_TRUNC
  16. # define O_TRUNC      01000 /* Not fcntl.  */
  17. #endif
  18. #ifndef O_APPEND
  19. # define O_APPEND     02000
  20. #endif
  21. #ifndef O_NONBLOCK
  22. # define O_NONBLOCK   04000
  23. #endif
  24. #ifndef O_NDELAY
  25. # define O_NDELAY   O_NONBLOCK
  26. #endif
  27. #ifndef O_SYNC
  28. # define O_SYNC        04010000
  29. #endif
  30. #define O_FSYNC     O_SYNC
  31. #ifndef O_ASYNC
  32. # define O_ASYNC     020000
  33. #endif
  34.  
  35. #include <iostream>
  36. #include <cstdlib>
  37. int main(int argc, char** argv)
  38. {
  39.     if (argc < 2)
  40.     {
  41.         std::cout << "You must enter a file flag value" << std::endl;
  42.         return 1;
  43.     }
  44.    
  45.     bool accmode_flag = false;
  46.     bool rdonly_flag = false;
  47.     bool rdwr_flag = false;
  48.     bool creat_flag = false;
  49.     bool excl_flag = false;
  50.     bool noctty_flag = false;
  51.     bool trunc_flag = false;
  52.     bool append_flag = false;
  53.     bool nonblock_flag = false;
  54.     bool ndelay_flag = false;
  55.     bool sync_flag = false;
  56.     bool fsync_flag = false;
  57.     bool async_flag = false;
  58.    
  59.     unsigned int flag_val = std::atoi(argv[1]);
  60.     std::cout << "flag val: " << flag_val << std::endl;
  61.     std::cout << "O_ACCMODE: " << ((flag_val & O_ACCMODE) != 0 ? "true" : "false") << std::endl;
  62.     std::cout << "O_RDONLY: " << ((flag_val & O_RDONLY) != 0 ? "true" : "false") << std::endl;
  63.     std::cout << "O_RDWR: " << ((flag_val & O_RDWR) != 0 ? "true" : "false") << std::endl;
  64.     std::cout << "O_CREAT: " << ((flag_val & O_CREAT) != 0 ? "true" : "false") << std::endl;
  65.     std::cout << "O_EXCL: " << ((flag_val & O_EXCL) != 0 ? "true" : "false") << std::endl;
  66.     std::cout << "O_NOCTTY: " << ((flag_val & O_NOCTTY) != 0 ? "true" : "false") << std::endl;
  67.     std::cout << "O_TRUNC: " << ((flag_val & O_TRUNC) != 0 ? "true" : "false") << std::endl;
  68.     std::cout << "O_APPEND: " << ((flag_val & O_APPEND) != 0 ? "true" : "false") << std::endl;
  69.     std::cout << "O_NONBLOCK: " << ((flag_val & O_NONBLOCK) != 0 ? "true" : "false") << std::endl;
  70.     std::cout << "O_NDELAY: " << ((flag_val & O_NDELAY) != 0 ? "true" : "false") << std::endl;
  71.     std::cout << "O_SYNC: " << ((flag_val & O_SYNC) != 0 ? "true" : "false") << std::endl;
  72.     std::cout << "O_FSYNC: " << ((flag_val & O_FSYNC) != 0 ? "true" : "false") << std::endl;
  73.     std::cout << "O_ASYNC: " << ((flag_val & O_ASYNC) != 0 ? "true" : "false") << std::endl;
  74. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement