open()Hàm open() nhận một tham số cờ là tổ hợp OR của nhiều hằng số bit. Trong bài này dùng các giá trị chuẩn của Linux (định nghĩa rõ trong chương trình, không phụ thuộc <fcntl.h> của máy):
O_ACCMODE = 3:
O_RDONLY = 0, O_WRONLY = 1, O_RDWR = 2.O_CREAT = 0100 (octal) = 64O_APPEND = 02000 (octal) = 1024O_TRUNC = 01000 (octal) = 512Cho giá trị flags (thập phân) đã được OR sẵn theo các hằng số trên, hãy in:
RDONLY, WRONLY hoặc RDWR (xét flags & O_ACCMODE).CREAT=1/CREAT=0.TRUNC=1/TRUNC=0.APPEND=1/APPEND=0.flags = O_WRONLY | O_CREAT | O_TRUNC = 1 | 64 | 512 = 577.WRONLY / CREAT=1 / TRUNC=1 / APPEND=0.Một dòng: số nguyên flags (thập phân) — tổ hợp OR theo các hằng số Linux nêu trên.
flags là tổ hợp hợp lệ của các cờ nêu trên.
Bốn dòng: chế độ truy cập, rồi CREAT=, TRUNC=, APPEND=.
Ví dụ:
Đầu vào:
577
Đầu ra:
WRONLY
CREAT=1
TRUNC=1
APPEND=0
Giải thích:
Đang tải editor...