1、Windows

define O_RDONLY 0x0000

define O_WRONLY 0x0001

define O_RDWR 0x0002

define O_APPEND 0x0008

define O_CREAT 0x0100

define O_TRUNC 0x0200

define O_EXCL 0x0400

define O_TEXT 0x4000

define O_BINARY 0x8000

define O_RAW 0x8000

define O_TEMPORARY 0x0040

define O_NOINHERIT 0x0080

define O_SEQUENTIAL 0x0020

define O_RANDOM 0x0010

2、linux

define O_ACCMODE 0003

define O_RDONLY 00

define O_WRONLY 01

define O_RDWR 02

define O_CREAT 0100 / not fcntl /

define O_EXCL 0200 / not fcntl /

define O_NOCTTY 0400 / not fcntl /

define O_TRUNC 01000 / not fcntl /

define O_APPEND 02000

define O_NONBLOCK 04000

define O_NDELAY O_NONBLOCK

define O_SYNC 04010000

define O_FSYNC O_SYNC

define O_ASYNC 020000

3、使用

define O_RDONLY 0x0000

define O_WRONLY 0x0001

define O_RDWR 0x0002

这三个是基本打开标志,是互斥的,其他的都是附加标志;

open("test.txt",O_RDONLY,00700);
open("test.txt",O_WRONLY|O_CREAT|O_TRUNC,00700);

另外:linux下不存在二进制打开标志,linux下文件都是二进制操作的;

4、windows和linux下头文件
fcntl-Windows.h fcntl-linux.h