open_opengl - CSDN
open 订阅
open是多种语言、环境的一种函数,LINUX中open函数作用:打开和创建文件。PB程序语言中open功能:打开窗口。 展开全文
open是多种语言、环境的一种函数,LINUX中open函数作用:打开和创建文件。PB程序语言中open功能:打开窗口。
信息
外文名
open
类    别
程序函数
作    用
打开和创建文件
中文名
open函数
系    统
LINUX
应    用
PB程序,C语言
open程序语言
作用:打开和创建文件。简述:open是UNIX系统(包括LINUX、Mac等)的系统调用函数,区别于C语言库函数fopen。对于open函数来说,第三个参数仅当创建新文件时(即 使用了O_CREAT 时)才使用,用于指定文件的访问权限位(access permission bits)。pathname 是待打开/创建文件的POSIX路径名(如/home/user/a.cpp);flags 用于指定文件的打开/创建模式,这个参数可由以下常量(定义于fcntl.h)通过逻辑位或逻辑构成。打开/创建文件时,至少得使用上述三个常量中的一个。以下常量是选用的:设置为非阻塞模式以下三个常量同样是选用的,它们用于同步输入输出open返回的文件描述符一定是最小的未被使用的描述符。如果 NAME_MAX(文件名最大长度,不包括'\0')是 14,而我们想在当前目录下创建文件名长度超过 14 字节的文件,早期的 System V 系统(如 SVR2)会截断超出部分,只保留前 14 个字节;而由 BSD 衍生的(BSD-derived)系统会返回错误信息,并且把 errno 置为 ENAMETOOLONG。POSIX.1 引入常量 _POSIX_NO_TRUNC 用于决定是否截断长文件名/长路径名。如果_POSIX_NO_TRUNC 设定为禁止截断,并且路径名长度超过 PATH_MAX(包括 '\0'),或者组成路径名的任意文件名长度超过 NAME_MAX,则返回错误信息,并且把 errno 置为 ENAMETOOLONG。功能打开窗口。该函数有两种语法格式:语法一、打开编程时已知数据类型的窗口对象;语法二、打开程序运行后才能确定数据类型的窗口对象。下面分别予以介绍:语法一、打开编程时已知数据类型的窗口对象语法Open( windowvar {,parent } )参数windowvar:要打开窗口的窗口名,可以使用窗口画笔定义的窗口对象名,也可以使用该窗口对象的某个变量。Open()函数把打开窗口的引用放置到windowvar变量中parent:可选项,指定要打开窗口的父窗口,要打开窗口成为父窗口的子窗口,只有当要打开窗口需要成为某个窗口的子窗口时才需要指定该参数。如果应用程序使用Open()函数打开某个子窗口或弹出窗口而又省略了该参数,那么当前活动窗口成为被打开窗口的父窗口返回值Integer。函数执行成功时返回1,发生错误时返回-1。如果任何参数的值为NULL,Open()函数返回NULL。语法二、打开程序运行后才能确定数据类型的窗口对象语法Open( windowvar,windowtype {,parent } )参数windowvar:指定窗口变量名,Open()函数把打开窗口的引用放置到该变量中windowtype:string类型,指定要打开窗口的数据类型,该参数指定的窗口数据类型必须与windowvar参数的类型相同或是windowvar类型的后继对象parent:可选项,指定要打开窗口的父窗口,要打开窗口成为父窗口的子窗口,只有当要打开窗口需要成为某个窗口的子窗口时才需要指定该参数。如果应用程序使用Open()函数打开某个子窗口或弹出窗口而又省略了该参数,那么当前活动窗口成为被打开窗口的父窗口返回值Integer。函数执行成功时返回1,发生错误时返回-1。如果任何参数的值为NULL,Open()函数返回NULL。VB 中,Open 语句提供对文件的读取、写入、限定于其它进程打开的文件的操作。语句结构:OpenpathnameFormode[Accessaccess] [lock]As[#]filenumber[Len=reclength]对文件做任何 I/O 操作之前都必须先打开文件。Open语句分配一个缓冲区供文件进行 I/O 之用,并决定缓冲区所使用的访问方式。如果pathname指定的文件不存在,那么,在用Append、Binary、Output、或Random方式打开文件时,可以建立这一文件。如果文件已由其它进程打开,而且不允许指定的访问类型,则Open操作失败,而且会有错误发生。如果mode是Binary方式,则Len子句会被忽略掉。在Binary、Input和Random方式下可以用不同的文件号打开同一文件,而不必先将该文件关闭。在Append和Output方式下,如果要用不同的文件号打开同一文件,则必须在打开文件之前先关闭该文件。若要关闭 Open 所打开的文件,就要使用 Close 语句Close 语句:关闭Open语句所打开的输入/输出 (I/O) 文件,Close 语句结构:Close[filenumberlist]可选的filenumberlist参数为一个或多个文件号,其中filenumber为任何有效的文件号,Javascript 中的 Open 方法可以(默认在新窗口)打开任意一个 URL。(必须和 Window 一起使用)Window.Open 语句结构:window.open(URL,name,features,replace) , 相关信息可以查看本词条的对 Javascript Open 方法实例:(在HTML插入)open(打开文件)相关函数read,write,fcntl,close,link,stat,umask,unlink,fopen头文件定义函数参数pathname 指向欲打开的文件路径字符串。下列是参数flags 所能使用的标志位:上述三种标志位是互斥的,也就是不可同时使用,但可与下列的标志位利用OR(|)运算符组合。此为Linux2.2以后特有的标志位,以避免一些系统安全问题。参数mode 则有下列数种组合,只有在建立新文件时才会生效,此外真正建文件时的权限会受到umask值所影响,因此该文件权限应该为(mode-umaks)。若所有欲核查的权限都通过了检查则返回文件描述符,表示成功,只要有一个权限被禁止则返回-1。使用access()作用户认证方面的判断要特别小心,例如在access()后再作open()空文件可能会造成系统安全上的问题。
收起全文
精华内容
参与话题
  • 打开文件open()函数的使用方法详解--C语言函数

    万次阅读 多人点赞 2015-02-23 16:24:23
    头文件:#include #include #include ... int open(const char * pathname, int flags);  int open(const char * pathname, int flags, mode_t mode); 函数说明: 参数 pathname 指向欲打开的文件路径字符串. 下
    头文件:#include <sys/types.h>    #include <sys/stat.h>    #include <fcntl.h>

    定义函数:
        int open(const char * pathname, int flags);
        int open(const char * pathname, int flags, mode_t mode);

    函数说明:

    参数 pathname 指向欲打开的文件路径字符串. 下列是参数flags 所能使用的旗标:

    O_RDONLY 以只读方式打开文件
    O_WRONLY 以只写方式打开文件
    O_RDWR 以可读写方式打开文件. 上述三种旗标是互斥的, 也就是不可同时使用, 但可与下列的旗标利用OR(|)运算符组合.
    O_CREAT 若欲打开的文件不存在则自动建立该文件.
    O_EXCL 如果O_CREAT 也被设置, 此指令会去检查文件是否存在. 文件若不存在则建立该文件, 否则将导致打开文件错误. 此外, 若O_CREAT 与O_EXCL 同时设置, 并且欲打开的文件为符号连接, 则会打开文件失败.
    O_NOCTTY 如果欲打开的文件为终端机设备时, 则不会将该终端机当成进程控制终端机.
    O_TRUNC 若文件存在并且以可写的方式打开时, 此旗标会令文件长度清为0, 而原来存于该文件的资料也会消失.
    O_APPEND 当读写文件时会从文件尾开始移动, 也就是所写入的数据会以附加的方式加入到文件后面.
    O_NONBLOCK 以不可阻断的方式打开文件, 也就是无论有无数据读取或等待, 都会立即返回进程之中.
    O_NDELAY 同O_NONBLOCK.
    O_SYNC 以同步的方式打开文件.
    O_NOFOLLOW 如果参数pathname 所指的文件为一符号连接, 则会令打开文件失败.
    O_DIRECTORY 如果参数pathname 所指的文件并非为一目录, 则会令打开文件失败。
    注:此为Linux2. 2 以后特有的旗标, 以避免一些系统安全问题. 

    参数mode 则有下列数种组合, 只有在建立新文件时才会生效, 此外真正建文件时的权限会受到umask 值所影响, 因此该文件权限应该为 (mode-umaks).
    S_IRWXU00700 权限, 代表该文件所有者具有可读、可写及可执行的权限.
    S_IRUSR 或S_IREAD, 00400 权限, 代表该文件所有者具有可读取的权限.
    S_IWUSR 或S_IWRITE, 00200 权限, 代表该文件所有者具有可写入的权限.
    S_IXUSR 或S_IEXEC, 00100 权限, 代表该文件所有者具有可执行的权限.
    S_IRWXG 00070 权限, 代表该文件用户组具有可读、可写及可执行的权限.
    S_IRGRP 00040 权限, 代表该文件用户组具有可读的权限.
    S_IWGRP 00020 权限, 代表该文件用户组具有可写入的权限.
    S_IXGRP 00010 权限, 代表该文件用户组具有可执行的权限.
    S_IRWXO 00007 权限, 代表其他用户具有可读、可写及可执行的权限.
    S_IROTH 00004 权限, 代表其他用户具有可读的权限
    S_IWOTH 00002 权限, 代表其他用户具有可写入的权限.
    S_IXOTH 00001 权限, 代表其他用户具有可执行的权限.

    返回值:若所有欲核查的权限都通过了检查则返回0 值, 表示成功, 只要有一个权限被禁止则返回-1.

    错误代码:
    EEXIST 参数pathname 所指的文件已存在, 却使用了O_CREAT 和O_EXCL 旗标.
    EACCESS 参数pathname 所指的文件不符合所要求测试的权限.
    EROFS 欲测试写入权限的文件存在于只读文件系统内.
    EFAULT 参数pathname 指针超出可存取内存空间.
    EINVAL 参数mode 不正确.
    ENAMETOOLONG 参数 pathname 太长.
    ENOTDIR 参数pathname 不是目录.
    ENOMEM 核心内存不足.
    ELOOP 参数pathname 有过多符号连接问题.
    EIO I/O 存取错误.

    附加说明:使用 access()作用户认证方面的判断要特别小心, 例如在access()后再作open()空文件可能会造成系统安全上的问题.

    范例
    #include <unistd.h>
    #include <sys/types.h>
    #include <sys/stat.h>
    #include <fcntl.h>
    main()
    {
        int fd, size;
        char s[] = "Linux Programmer!\n", buffer[80];
        fd = open("/tmp/temp", O_WRONLY|O_CREAT);
        write(fd, s, sizeof(s));
        close(fd);
        fd = open("/tmp/temp", O_RDONLY);
        size = read(fd, buffer, sizeof(buffer));
        close(fd);
        printf("%s", buffer);
    }

    执行
    Linux Programmer!
    展开全文
  • open()函数

    千次阅读 2019-08-17 18:12:12
    1、程序文件 #include &amp;amp;amp;lt;stdio.h&amp;amp;amp;gt; #include &amp;amp;amp;lt;sys/types.h&amp;amp;amp;gt; #include &amp;amp;amp;lt;sys/stat.h&...#incl

    01
    程序文件

    #include <stdio.h>
    
    #include <sys/types.h>
    #include <sys/stat.h>
    #include <fcntl.h>
    
    #include <errno.h>
    
    int main()
    {
    	// close(1);
    	
    	// 第一个参数:要打开得文件名
    	// 第二个参数:打开方式
    	
    	// O_RDONLY —— 只读
    	// O_WRONLY —— 只写
    	// O_RDWR   —— 可读写
    	
    	// O_CREAT:文件不存在时,创建该文件, 文件的权限由第三个参数决定,最终的权限:mode & (~umask)
    	// 文件描述符:打开文件的时候返回的文件描述符默认使用当前可用的最小的文件描述符
    	// 此时得fd得值为3
    	// 0 —— 标准输入
    	// 1 —— 标准输出
    	// 2 —— 标准错误
    	
    	// open	函数是对文件设备的打开操作,
    	// 这个函数会返回一个句柄fd,我们通过这个句柄fd对设备文件读写操作。
    	
    	// open函数返回的文件描述符fd一定是未使用的最小的文件描述符,那么如果0没有使用,
    	// 那么我们open的时候,首先就会获取到fd=0的情况。
    	// 默认情况下,0,1,2这三个句柄对应的是标准输入, 标准输出,标准错误,
    	// 系统进程默认会打开0,1,2这三个文件描述符,
    	// 而且指向了键盘和显示器的设备文件。所以通常我们open的返回值是从3开始的。
    	// 如果我们在open之前,close其中的任何一个,则open的时候,则会用到close的最小的值。
    
    	// 调用成功时返回一个文件描述符fd
    	int fd = open("abc", O_WRONLY | O_CREAT, 0777);
    	
    	if (-1 == fd)
    	{
    		printf ("打开文件失败\n");
    		
    		// 调用失败时返回-1,并修改errno
    		printf ("errno : %d\n", errno);
    		
    		// 打印错误信息,参数是相关提示
    		perror ("打开man1.txt文件失败");   
    		
    		return -1;
    	}
    	
    	printf ("成功, fd = %d\n", fd);
    
    	fflush(stdout);
    	close(fd);
    	
    	return 0;
    }
    

    02
    测试结果

    root@lj:/mnt/hgfs/shared-lj# ./a.out 
    成功, fd = 3
    
    展开全文
  • open函数详解与close函数详解

    万次阅读 2018-03-20 21:17:05
    open() 头文件:#include&lt;fcntl.h&gt;//在centos6.0中只要此头文件就可以 #include&lt;sys/types.h&gt; #incldue&lt;sys/stat.h&gt; 功能:打开和创建文件(建立一个文件描述符,...

    open()

    头文件:#include<fcntl.h>//在centos6.0中只要此头文件就可以
           #include<sys/types.h>
           #incldue<sys/stat.h>
    功能:打开和创建文件(建立一个文件描述符,其他的函数可以通过文
         件描述符对指定文件进行读取与写入的操作。)

    原型

    int open(const char*pathname,int flags);
    int open(const char*pathname,int flags,mode_t mode);
    参数说明:
    1.pathname
      要打开或创建的目标文件
    2.flags
      打开文件时,可以传入多个参数选项,用下面的
      一个或者多个常量进行“或”运算,构成falgs
      参数:
      O_RDONLY:   只读打开
      O_WRONLY:   只写打开
      O_RDWR:     读,写打开
    这三个常量,必须制定一个且只能指定一个
      O_CREAT:    若文件不存在,则创建它,需要使
                  用mode选项。来指明新文件的访问权限
      O_APPEND:   追加写,如果文件已经有内容,这次打开文件所
                  写的数据附加到文件的末尾而不覆盖原来的内容
    
    

    ps:open函数具体使用那个,和具体应用场景相关,如目标文件存在,使用两个参数的open,如果目标文件不存在,需要open创建,则第三个参数表示创建文件的默认权限

    返回值

    成功:新打开的文件描述符
    失败:-1
    open返回的文件描述符一定是最小的而且没有被使用的

    fopen与open的区别

    以可写的方式fopen一个文件时,如果文件不存在则会自动创建,而open一个文件时必须明确O_CREAT才会创建文件,否则文件不存在就出错返回

    close

    头文件:#include<unistd.h>
    功能:关闭一个已经打开的文件

    原型

    int close(int fd)
    参数说明:
     fd:是需要关闭的文件描述符

    返回值

    成功:返回0;
    失败:返回-1,并设置errno

    打开的文件描述符一定要记得关闭,否则资源会被大量的占用,导致内存不够

    open打开的文件存在时:
    示例:
    1.
    代码:

    #include<stdio.h>
    #include<string.h>
    #include<fcntl.h>
    #include<unistd.h>
    #include<stdlib.h>
    int main()
    {
     int fd=open("myfile",O_WRONLY);
     if(fd<0)
     {
      perror("open");
      exit(1);
     }
     const char*msg="hello open\n";
     int count = 6;
     while(count--)
     {
      write(fd,msg,strlen(msg));
     }
     close(fd);
     return 0;
    }
    

    运行结果:
    这里写图片描述
    2.
    代码:

    #include<stdio.h>
    #include<stdlib.h>
    #include<string.h>
    #include<fcntl.h>
    #include<unistd.h>
    int main()
    {
     int fd=open("myfile",O_RDWR);
     if(fd<0)
     {
      perror("open");
      exit(1);
     }
     const char*msg="hello  hahaha\n";
     int count= 10;
     while(count--)
     {
     write(fd,msg,strlen(msg));
     }
     char buf[1024]={0};
     int num=10;
     while(num--)
     {
     read(fd,buf,strlen(msg));
     }
     close(fd);
     return 0;
    }
    

    运行结果:
    这里写图片描述

    open打开的文件不存在时:

    1.
    代码:

    #include<stdio.h>
    #include<stdlib.h>
    #include<unistd.h>
    #include<string.h>
    #include<fcntl.h>
    int main()
    {
     int fd=open("file",O_WRONLY|O_CREAT,0644);
     //file文件不存在,所以在书写第二个参数时,记得把O_CREAT加上,
     //如果不加O_CREAT的话,程序就会报此文件不存在
     if(fd<0)
     {
      perror("open");
      exit(1);
     }
     const char*msg="hello file\n";
     int count=10;
     while(count--)
     {
      write(fd,msg,strlen(msg));
     }
     close(fd);
     return 0;
    }
    

    运行结果:
    这里写图片描述

    展开全文
  • Linux下Open函数

    万次阅读 2018-10-31 13:44:04
    文章目录Open 介绍参数案例输出结果:文件描述符fd Open 介绍  Open函数用来打开一个文件,建立一个文件描述符到文件路径的映射,建立文件标识。  open函数原型如下所示: #include &amp;lt;fcntl.h&amp;...

    Open 介绍

     Open函数用来打开一个文件,建立一个文件描述符到文件路径的映射,建立文件标识。
     open函数原型如下所示:

    #include <fcntl.h>
    int open(const char *pathname, int oflag,...);
    

    参数

    • pathname是要打开或者创建的文件路径名,可以是绝对路径也可以是相对路径。
    • oflag:打开文件时,可以传入多个参数选项,用下面的一个或多个进行“或”运算,构成flags; 其中:O_RDONLY—只读打开、 Q_WRONLY—只写打开、O_RDWR—读、写打开 ;这三个变量只能指定一个 ;O_CREAT—若文件不存在,则创建它。需要使用mode(文件权限标志)选项,来指明新文件的访问权限 ;O_APPEND—追加写
    #define O_RDONLY             00     /*只读方式打开*/
    #define O_WRONLY             01     /*只写方式打开*/
    #define O_RDWR               02     /*读写方式打开*/
    
    • 返回值:成功则返回打开文件的描述符(通常为3),失败则返回-1。
      文件标识符0、1、2分别代表标准输入、标准输出和标准错误输出,分别用常量STDIN_FILENO、STDOUT_FILENO和STDERR_FILENO代替。

    案例

    #include <fcntl.h>                                                       
    using namespace std;
     
    int main()
    {
        off_t fd;
        fd=open("1.txt",O_RDONLY);
        cout<<fd<<endl;
        
        return 0;
    }
    

    输出结果:

    3
    

    文件描述符fd

     文件描述符在形式上 是一个非负整数。它是一个索引值,指向内核为每一个进程所维护的该进程打开文件的记录表。当程序打开一个现有文件或者创建一个新文件时,内核向进程返回一个文件描述符。在程序设计中,一些涉及底层的程序编写往往会围绕文件描述符展开。

    • 习惯上,标准输入(standard input)的文件描述符是 0,标准输出(standard output)是 1,标准错误(standard error)是 2。
    • 0,1,2对应的物理设备一一般是:键盘,显示器,显示器。
    • 所以通常当我们成功打开文件时,返回的fd都是从3起。
    展开全文
  • python 中 open与with open 的区别

    千次阅读 2019-01-12 14:42:56
    python文件读写,以后就用with open语句 读写文件是最常见的IO操作。Python内置了读写文件的函数,用法和C是兼容的。 读写文件前,我们先必须了解一下,在磁盘上读写文件的功能都是由操作系统提供的,现代操作系统不...
  • CentOS启动nginx出现 nginx: [emerg] open() "/var/run/nginx/nginx.pid" failed (2: No such file or director)解决办法
  • 重新启动服务器,访问web... -s reload重新读取配置文件,发现报nginx: [error] open() "/usr/local/nginx/logs/nginx.pid" failed (2: No such file or directory)错误,进到logs文件发现的确没有nginx.pid文件  
  • 操作中删除文件目录,... nginx: [emerg] open() " /export/Logs/nginx/nginx_error.log" failed (2: No such file or directory) 根据提示应该是丢失文件导致的,于是可以看到在/export/Logs目录...
  • 1. Upstream timed out (110: Connection timed out) while reading response header from upstream 这种情况主要在下面两种情况下发生: a. Nginx 作为 proxy,需要适当的调整 proxy timeout 的值。...
  • python 使用 with open() as 读写文件

    万次阅读 多人点赞 2018-08-24 16:24:13
    要以读文件的模式打开一个文件对象,使用Python内置的open()函数,传入文件名和标示符: &gt;&gt;&gt; f = open('E:\python\python\test.txt', 'r') 标示符'r'表示读,这样,我们就成功地打开了一个...
  • 在拓扑学上,open set(开集)是对实数轴(real line)上开区间(open interval)的拓展。 红色圆盘,蓝色圆圈 红色点集即为一种 open set,蓝色点集则为 boundary set, 红色点集和蓝色点集的并构成
  • 整合Springboot+Vue(基础框架)

    万次阅读 多人点赞 2019-06-29 12:37:55
    初期技术栈计划:Springboot2.13 + Vue + Mybatis + Postgresql + redies + FreeMarker(这个不一定会用到) 前期准备: Vue安装:查看node.js 和npm是否安装,这需要注意一点默认npm版本很低,需要自己upgrade下: ...
  • OpenIE(OpenChrome)

    2020-07-30 23:30:07
    浏览器打开新的页面指定用IE或谷歌,例:《a href = “openIE:www.baidu.com”》点我使用外部协议运行IE打开百度《/a》 使用到外部协议,即自定义协议,通过协议打开本地程序。
  • OpenMesh的功能和目标 底层数据结构的主要特征: 不仅限于三角形网格,也可以处理多边形网格; 顶点,半边,边及面的显示表示; 有效访问顶点的单环领域; 能够处理非流形几何(例如,两个面仅通过一个顶点相连...
  • Python提供了多种文件操作方式,这里简单介绍os.open、io.open、内置函数open之间的关系: 一、内置函数open和io.open实际上是同一个函数,后者是前者的别名; 二、os.open与内置函数open的关系 os.open是文件操作...
  • 错误异常too many open files解决方法

    万次阅读 2018-11-09 14:01:01
    too many open files是Linux系统中常见的错误,从字面意思上看就是说程序打开的文件数过多,不过这里的files不单是文件的意思,也包括打开的通讯链接(比如socket),正在监听的端口等等,所以有时候也可以叫做句柄...
  • Python open()函数的模式详解

    万次阅读 2019-06-17 13:44:17
    Python open函数的模式详解Python open()函数的打开模式您都了解了吗?打开模式文件格式读写模式组合模式 Python open()函数的打开模式您都了解了吗? Python open()函数用于打开文件,并返回一个文件对象,然后通过...
  • Python学习笔记:open()函数打开文件路径报错问题

    万次阅读 多人点赞 2017-03-11 09:44:24
    要以读文件的模式打开一个文件对象,使用Python内置的open()函数,传入文件名和标示符,标示符'r'表示读。 >>> f = open('D:/test.txt','r') 注意了,对初学python的同学而言,open()函数着实存在一个不大不小的坑...
  • layer.open组件获取弹出层页面变量、函数

    万次阅读 热门讨论 2016-09-22 09:08:15
    使用layer.open组件弹出层,需要将该弹出层抽取城单独的公共页面,因此需要在主页面获取弹出层页面的相关变量或者函数值。记录下解决办法。先来看layer.open函数再来看弹出层URL对应的页面关键代码 将表单序列化成JS...
  • 简析运维监控系统及Open-Falcon

    万次阅读 2016-07-24 14:04:53
    我所在的公司,在去年完成了从Zabbix到Open-Falcon的转换,有从小米过来的运维工程师的大力推动的影响,也是由于对于巨量的数据上报/统计,万+上报节点,Zabbix力不从心了,而Open-Falcon这方面更加强大,转换之后,...
1 2 3 4 5 ... 20
收藏数 2,347,591
精华内容 939,036
关键字:

open