在Linux系统中open命令一般用于打开文件,下面良许教程网为大家详细讲解一下Linux系统中open命令的具体使用方法。

open命令用于打开文件,使用时需要引用头文件
__extern_always_inline int
open (__const char *__path, int __oflag, ...)
{
if (__va_arg_pack_len () > 1)
__open_too_many_args ();
if (__builtin_constant_p (__oflag))
{
if ((__oflag & O_CREAT) != 0 && __va_arg_pack_len ()
入参中,path是要打开或创建的文件路径,oflag是标记,用来标识要打开或创建的文件所拥有的权限,由主flag和备flag组成,主flag有O_RDONLY, O_WRONLY, O_RDWR,分别表示只读,只写,读写,三者必有其一,备flag可以自由选择,常用的一个备flag是O_CREAT,用于在没有该文件的时候,在__path路径下创建该文件。可以附加第三个参数,类型为mode_t,是8进制数,用3位分别表示所有者权限、群组权限、其他用户权限,每位由4 | 2 | 1组成,4是读,2是写,1是执行,例如0600表示所有者拥有读写权限(6 = 4 | 2)。一个示例代码:
#ifdef _cplusplus
extern "C" {
#endif
#include
#include
#include //for open
#include //for printf
void main(argc, argv)
int argc;
char ** argv;
{
char * filename = "lala"; //要创建的文件
char * str = "hello, world\n"; //要向文件中写入的内容
int fd1 = open(filename, O_RDWR | O_CREAT, 0644);
printf("tmp = %d\n", fd1);
write(fd1, str, strlen(str) + 1);
system("cat lala");
int fd2 = open(filename, O_CREAT | O_WRONLY | O_EXCL, 0600);
if (-1 == fd2)
{
fd2 = open(filename, O_WRONLY | O_EXCL | O_TRUNC, 0600);
printf("fd = %d\n", fd2); //fd2的值会比fd1大1
}
close(fd1);
close(fd2);
system("cat lala");
}
#ifdef _cplusplus
}
#endif
效果如下

以上就是为各位朋友分享的相关内容。想要了解更多Linux相关知识记得关注公众号“良许Linux”,或扫描下方二维码进行关注,更多等着你!


微信扫一扫打赏
支付宝扫一扫打赏
