zoukankan      html  css  js  c++  java
  • Linux文件IO

    参考<unix高级环境编程》

    本章开始讨论U N I X系统,先说明可用的文件I / O函数——打开文件、读文件、写文件等等。
    大多数U N I X文件I / O只需用到5个函数:o p e n、r e a d、w r i t e、lseek 以及c l o s e。然后说明不同缓
    存器长度对r e a d和w r i t e函数的影响。

    在P O S I X . 1应用程序中,幻数0、1、2应被代换成符号常数S T D I N_ F I L E N O、S T D O U T_ F I L E N O和S T D E R R_ F I L E N O。这些常数都定义在头文件< u n i s t d . h >中。

    int open(const char* pathname,int oflag,...)

    第一个参数是用来指定所要打开的文件的路径和名字,第二个参数用来指定文件的打开方式,第三个参数...表示后面可以有任何类型的任意多个参数,不过第三个参数只有在用open函数创建新文件时才用来指定新建文件的权限。第二个参数可以有的选择有:

    1. O_RDONLY:以只读方式打开文件  
    2. O_WRONLY:以只写方式打开文件  
    3. O_RDWR:以可读可写的方式打开文件 

    实际上面的三种选择的值分别为0,1和2。在初学linux编程时比较容易犯的一个错误是,文件以可读可写方式打开时,写成如下的形式:

    o p e n返回的文件描述符一定是最小的未用描述符数字。这一点被很多应用程序用来在标
    准输入、标准输出或标准出错输出上打开一个新的文件。例如,一个应用程序可以先关闭标准
    输出(通常是文件描述符1 ),然后打开另一个文件,事先就能了解到该文件一定会在文件描述
    符1上打开。在3 . 1 2节说明d u p 2函数时,可以了解到有更好的方法来保证在一个给定的描述符
    上打开一个文件。

  • 相关阅读:
    SQL Server 2005 中 Cross join & Cross Apply & Outer Apply 的区别
    How to install Database using commandline prompt
    Get SQL Server default collation
    Shrink DB and Log
    Visual C++ Debugging: Why does program work in debug mode, but fail in release mode?
    使用Windows的SHFileOperation外壳函数实现文件操作
    2 types of C++ compiler guards
    LUA中的基本函数库
    Ruby 数组操作方法(转)
    ruby中的yield的概念
  • 原文地址:https://www.cnblogs.com/youxin/p/4150999.html
Copyright © 2011-2022 走看看