Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /* open/fcntl. */
- #define O_ACCMODE 0003
- #define O_RDONLY 00
- #define O_WRONLY 01
- #define O_RDWR 02
- #ifndef O_CREAT
- # define O_CREAT 0100 /* Not fcntl. */
- #endif
- #ifndef O_EXCL
- # define O_EXCL 0200 /* Not fcntl. */
- #endif
- #ifndef O_NOCTTY
- # define O_NOCTTY 0400 /* Not fcntl. */
- #endif
- #ifndef O_TRUNC
- # define O_TRUNC 01000 /* Not fcntl. */
- #endif
- #ifndef O_APPEND
- # define O_APPEND 02000
- #endif
- #ifndef O_NONBLOCK
- # define O_NONBLOCK 04000
- #endif
- #ifndef O_NDELAY
- # define O_NDELAY O_NONBLOCK
- #endif
- #ifndef O_SYNC
- # define O_SYNC 04010000
- #endif
- #define O_FSYNC O_SYNC
- #ifndef O_ASYNC
- # define O_ASYNC 020000
- #endif
- #include <iostream>
- #include <cstdlib>
- int main(int argc, char** argv)
- {
- if (argc < 2)
- {
- std::cout << "You must enter a file flag value" << std::endl;
- return 1;
- }
- bool accmode_flag = false;
- bool rdonly_flag = false;
- bool rdwr_flag = false;
- bool creat_flag = false;
- bool excl_flag = false;
- bool noctty_flag = false;
- bool trunc_flag = false;
- bool append_flag = false;
- bool nonblock_flag = false;
- bool ndelay_flag = false;
- bool sync_flag = false;
- bool fsync_flag = false;
- bool async_flag = false;
- unsigned int flag_val = std::atoi(argv[1]);
- std::cout << "flag val: " << flag_val << std::endl;
- std::cout << "O_ACCMODE: " << ((flag_val & O_ACCMODE) != 0 ? "true" : "false") << std::endl;
- std::cout << "O_RDONLY: " << ((flag_val & O_RDONLY) != 0 ? "true" : "false") << std::endl;
- std::cout << "O_RDWR: " << ((flag_val & O_RDWR) != 0 ? "true" : "false") << std::endl;
- std::cout << "O_CREAT: " << ((flag_val & O_CREAT) != 0 ? "true" : "false") << std::endl;
- std::cout << "O_EXCL: " << ((flag_val & O_EXCL) != 0 ? "true" : "false") << std::endl;
- std::cout << "O_NOCTTY: " << ((flag_val & O_NOCTTY) != 0 ? "true" : "false") << std::endl;
- std::cout << "O_TRUNC: " << ((flag_val & O_TRUNC) != 0 ? "true" : "false") << std::endl;
- std::cout << "O_APPEND: " << ((flag_val & O_APPEND) != 0 ? "true" : "false") << std::endl;
- std::cout << "O_NONBLOCK: " << ((flag_val & O_NONBLOCK) != 0 ? "true" : "false") << std::endl;
- std::cout << "O_NDELAY: " << ((flag_val & O_NDELAY) != 0 ? "true" : "false") << std::endl;
- std::cout << "O_SYNC: " << ((flag_val & O_SYNC) != 0 ? "true" : "false") << std::endl;
- std::cout << "O_FSYNC: " << ((flag_val & O_FSYNC) != 0 ? "true" : "false") << std::endl;
- std::cout << "O_ASYNC: " << ((flag_val & O_ASYNC) != 0 ? "true" : "false") << std::endl;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement