open
打开或创建一个文件。
格式
open <filename> [flag | mode]
说明
[root@sylixos:/root]# help open
open a file.
filename : file name
flag : O_RDONLY : 00000000
O_WRONLY : 00000001
O_RDWR : 00000002
O_APPEND : 00000008
O_SHLOCK : 00000010
O_EXLOCK : 00000080
O_ASYNC : 00000040
O_CREAT : 00000200
O_TRUNC : 00000400
O_EXCL : 00000800
O_SYNC : 00002000
O_NONBLOCK : 00004000
O_NOCTTY : 00008000
O_CLOEXEC : 00080000
mode : create file mode, eg: 0666
open [filename flag mode]
[root@sylixos:/root]#
此命令可以用来打开或创建一个文件。
备注:
mode 参数只有 flag 设置为 O_CREAT(00000200)时,才会使用,表示创建文件的权限。
样例
files
命令作用为列出操作系统所有正在操作的文件信息。
[root@sylixos:/apps/test]# ls
hello.c
[root@sylixos:/apps/test]# open hello.c 2
open file return: 8 dev 170000 inode 37c8 size 18
[root@sylixos:/apps/test]# files
kernel filedes show (process filedes in /proc/${pid}/filedes) >>
fd abn name type drv
3 /dev/console orig 19 GLB STD_IN GLB STD_OUT GLB STD_ERR
4 /dev/socket socket 33
5 /dev/socket socket 33
6 /dev/ttyS0 orig 19
7 /dev/input/xkbd new_1 37
8 /apps/test/hello.c new_1 23
9 /dev/hotplug orig 12
[root@sylixos:/apps/test]# ls
hello.c
[root@sylixos:/apps/test]# open temp.txt 0666
open file return: 10 dev 170000 inode 37da size 0
[root@sylixos:/apps/test]# ls
hello.c temp.txt
[root@sylixos:/apps/test]# files
kernel filedes show (process filedes in /proc/${pid}/filedes) >>
fd abn name type drv
3 /dev/console orig 19 GLB STD_IN GLB STD_OUT GLB STD_ERR
4 /dev/socket socket 33
5 /dev/socket socket 33
6 /dev/ttyS0 orig 19
7 /dev/input/xkbd new_1 37
8 /apps/test/hello.c new_1 23
9 /dev/hotplug orig 12
10 /apps/test/temp.txt new_1 23
[root@sylixos:/apps/test]#
字段说明:
字段(flags) | 说明 |
---|---|
O_RDONLY | 只读模式 |
O_WRONLY | 只写模式 |
O_RDWR | 读写模式 |
O_APPEND | 追加模式 |
O_SHLOCK | 共享锁,允许多个进程以共享模式访问文件 |
O_EXLOCK | 独占锁,确保只有一个进程能够访问文件 |
O_ASYNC | 异步操作,用于启动异步IO操作 |
O_CREAT | 创建文件 |
O_TRUNC | 截断文件,如果文件存在,清空文件内容 |
O_EXCL | 独占使用,与 O_REAT 一起使用,确保文件不存在,从而避免覆盖已经存在的文件 |
O_SYNC | 同步写入,要求再写入文件时同步写入,确保文件立即写入物理存储 |
O_NONBLOCK | 非阻塞,确保文件操作是非阻塞,如果无法立即执行操作,则返回错误 |
O_NOCTTY | 不分配控制终端 |
O_CLOEXEC | 执行关闭,自动关闭文件描述符 |