int open(const char *path, int access,int mode)

path 要打开的文件路径和名称

access 访问模式,宏定义和含义如下:

O_RDONLY         1    只读打开

O_WRONLY         2    只写打开

O_RDWR           4    读写打开

还可选择以下模式与以上3种基本模式相与:

O_CREAT     0x0100   创建一个文件并打开

O_TRUNC     0x0200   打开一个已存在的文件并将文件长度设置为0,其他属性保持

O_EXCL      0x0400   未使用

O_APPEND    0x0800   追加打开文件

O_TEXT      0x4000   打开文本文件翻译CR-LF控制字符

O_BINARY    0x8000   打开二进制字符,不作CR-LF翻译

mode 该参数仅在access=O_CREAT方式下使用,其取值如下:

S_IFMT      0xF000   文件类型掩码

S_IFDIR     0x4000   目录

S_IFIFO     0x1000   FIFO 专用

S_IFCHR     0x2000   字符专用

S_IFBLK     0x3000   块专用

S_IFREG     0x8000   只为0x0000

S_IREAD     0x0100   可读

S_IWRITE    0x0080   可写

S_IEXEC     0x0040   可执行

FILE *fopen(char *filename, char *mode)

filename 文件名称

mode 打开模式:

r   只读方式打开一个文本文件

rb  只读方式打开一个二进制文件

w   只写方式打开一个文本文件

wb  只写方式打开一个二进制文件

a   追加方式打开一个文本文件

ab  追加方式打开一个二进制文件

r+  可读可写方式打开一个文本文件

rb+ 可读可写方式打开一个二进制文件

w+  可读可写方式创建一个文本文件

wb+ 可读可写方式生成一个二进制文件

a+  可读可写追加方式打开一个文本文件

ab+ 可读可写方式追加一个二进制文件

open和fopen的区别:

前者属于低级IO,后者是高级IO。

前者返回一个文件描述符,后者返回一个文件指针。

前者无缓冲,后者有缓冲。

前者与 read, write 等配合使用, 后者与 fread, fwrite等配合使用。

后者是在前者的基础上扩充而来的,在大多数情况下,用后者。

open 是Linux/Unix系统调用 返回的是文件句柄,文件的句柄是文件在文件描述副表里的索引,

fopen是C的库函数,返回的是一个指向文件结构的指针。

fopen是ANSIC标准中的C语言库函数,在不同的系统中应该调用不同的内核api

linux中的系统函数是open,fopen是其封装函数。

fopen最终还是要调用底层的系统调用open。

linux下open和fopen的区别

二者返回值不同. fopen可以指定宽字符和ASCI.

[转] linux 下 进程和线程的区别

1.进程与线程 进程是程序执行时的一个实例,即它是程序已经执行到课中程度的数据结构的汇集.从内核的观点看,进程的目的就是担当分配系统资源(CPU时间.内存等)的基本单位. 线程是进程的一个执行流,是C ...

Windows下与Linux下编写socket程序的区别 《转载》

原文网址:http://blog.chinaunix.net/uid-2270658-id-308160.html [[Windows]] [Windows: 头文件的区别] #include&lt ...

[进程管理]linux 下 进程和线程的区别(baidu 面试)

进程是程序执行时的一个实例,即它是程序已经执行到课中程度的数据结构的汇集.从内核的观点看,进程的目的就是担当分配系统资源(CPU时间.内存等)的基本单位. 线程是进程的一个执行流,是CPU调度和分派的 ...

linux 下 进程和线程的区别

1.进程与线程 进程是程序执行时的一个实例,即它是程序已经执行到课中程度的数据结构的汇集.从内核的观点看,进程的目的就是担当分配系统资源(CPU时间.内存等)的基本单位. 线程是进程的一个执行流,是C ...

linux下 su 与 su - 的区别和使用

Linux下su与su -命令的区别   在启动服务器ntpd服务时遇到一个问题 使用 su root 切换到root用户后,不可以使用service命令: 使用 su - 后,就可以使用servic ...

Linux下tmpfs与ramfs的区别

ramfs是Linux下一种基于RAM做存储的文件系统.在使用过程中你就可以把ramfs理解为在普通的HDD上建立了一个文件系统,而现在HDD被替换成了RAM,因为是RAM做存储所以会有很高的存储 ...

docker在windows下和linux下网络底层的一些区别

windows和linux下的docker运行时的网络结构是有区别的 a.windows下,默认使用Hyper-v创建一个linux虚拟机,承载docker.所以从外向内的路径为: windows - ...

Linux下profile environment bashrc的区别

先将export LANG=zh_CN加入/etc/profile ,退出系统重新登录,登录提示显示英文.将/etc/profile 中的export LANG=zh_CN删除,将LNAG=z ...

随机推荐

cdrecord光盘烧录工具

我们是透过 cdrecord 这个命令来进行文字介面的烧录行为,这个命令常见的选项有底下数个: [root@www ~]# cdrecord -scanbus dev=ATA <==查询烧录机位 ...

2014 Multi-University Training Contest 5

hdu4911 max(逆序数-k,0) #include #include #include #inclu ...

&lbrack;LeetCode&rsqb; 56&period; Merge Intervals 解题思路

Given a collection of intervals, merge all overlapping intervals. For example,Given [1,3],[2,6],[8,1 ...

django开发简易博客(五)

这一节将讲述如何添加comments库与ajax的支持. 一.添加comments库 comments库是是django框架内置的一个评论库,可以快速的搭建岀一个评论系统,不过再自定义方面有些麻烦,不 ...

使用php导出excel并使用excel的求和统计函数对excel进行汇总

1. 使用excel的统计函数对excel进行多条件汇总求和: =SUMIFS($D$:$D$, $A$:$A$, :$B$, :$C$, "三级片") 例如: =SUMIFS(求 ...

orcale 使用创建日期排序然后分页每次取排序后的固定条数

需求: 一个使用mybatis分页插件的分页列表, 现在要求新增一条数据或者修改一条数据后,显示在最前端 思路: 使用sql , 先将查询出来的数据排序, 然后使用rownum > page*s ...

临时表 on commit delete rows 与 on commit preserve rows 的区别

-- 事务级临时表:提交时删除数据 create global temporary  table tmp_table1 (        x     number ) on commit delete ...

乘积尾零&vert;2018年蓝桥杯B组题解析第三题-fishers

标题:乘积尾零 如下的10行数据,每行有10个整数,请你求出它们的乘积的末尾有多少个零? 5650 4542 3554 473 946 4114 3871 9073 90 4329 2758 7949 ...

Android 开发工具类 25&lowbar;getJSON

获取 JSON 数据并解析 import java.io.InputStream; import java.net.HttpURLConnection; import java.net.URL; im ...

UOJ 348 【WC2018】州区划分——子集卷积

题目:http://uoj.ac/problem/348 参考:https://www.cnblogs.com/NaVi-Awson/p/9242645.html#%E5%AD%90%E9%9B%86 ...

linux中fopen和open的区别,Linux下open与fopen的区别相关推荐

  1. Linux中 set、env、declare、export显示shell变量的区别

    原文地址:https://www.cnblogs.com/wfwenchao/p/6139039.html [TOC] Linux中 set.env.declare.export显示shell变量的区 ...

  2. Linux下dislocate命令用法,在 Linux 中遨游手册页的海洋 | Linux 中国

    原标题:在 Linux 中遨游手册页的海洋 | Linux 中国 Linux 系统上的手册页可以做的不仅仅是提供特定命令的信息.它们可以帮助你发现你没有意识到的命令. https://linux.cn ...

  3. linux vi 移动光标,linux中vi命令的光标移动操作linux网页制作 -电脑资料

    分享一篇关于linux中vi命令的光标移动操作的文章,有需要的朋友可以参考一下, 全屏幕文本编辑器中, 光标的移动操作无疑是最经常使用的操作了.用户只有熟练地使用移动光标的这些命令,才能迅速准确地到达 ...

  4. linux中打开pdf文件_在Linux中减少PDF文件大小

    linux中打开pdf文件 In our Linux system, If we have a large PDF file, we may want to reduce it's size. We ...

  5. linux中的bin目录的作用,linux中bin与sbin目录的作用及区别介绍

    在linux系统中,有两个重要的目录:bin与sbin,分别包括/bin./usr/bin/与/sbin./usr/sbin/. bin: bin为binary的简写,主要放置系统的必备执行文件,例如 ...

  6. Linux中的终端(Terminal)与控制台(Console)的区别

    前言:我们经常听见两个概念,终端和控制台,但是它们的本质到底是什么,到底有什么区别,却很少能够讲得清楚,虽然明确的区分它们并没有太大的用处,但是对于理解Linux还是非常有帮助的. 一.终端Termi ...

  7. linux中利用shell脚本条件执行linux命令

    linux中利用shell脚本条件执行命令 在linux环境中,我们总会有一些命令需要经常用,例如经常跳转到某些目录下或者执行某些命令,输入一连串的命令是很烦的,此时我们可以预先写一些脚本然后根据我们 ...

  8. Linux中什么命令显示vi缩写,Linux命令(八)——vi编辑器的使用

    vi编辑器是linux系统下的标准正文编辑器,有三种基本模式:命令行模式.插入模式和底行命令模式. 1.命令行模式:控制屏幕光标的移动,字符.字或行的删除,移动复制某区段及进入插入模式或底行命令模式下 ...

  9. linux中initrd的含义,浅谈linux启动的那些事(initrd.img)

    本文记录下linux系统的启动过程,分析下每一步都作了什么.linux 1.linux系统的启动过程小程序 1.加载BIOS,上电自检.由于BIOS中包含了CPU的相关信息.设备启动顺序信息.硬盘信息 ...

  10. linux中的shell有printf吗,Linux Shell系列教程之(八)Shell printf命令详解

    在上一篇:Linux Shell系列教程之(七)Shell输出这篇文章中,已经对Shell printf命令有了一个简略的介绍,本篇给大家详细介绍下Shell中的printf命令. 一.Shell p ...

最新文章

  1. pthread相关介绍
  2. 百度推出LinearDesign,全球首个mRNA疫苗不稳定性解决方案,仅需16分钟
  3. python自学网站推荐-有哪些值得推荐的Python学习网站?
  4. Oracle day05 索引_数据去重
  5. 比較++和+的运算符优先级
  6. pwm一个时间单位_详解STM32的PWM输出及频率和脉宽(占空比)的计算——寄存器配置六步曲!...
  7. Android 图形系统
  8. python计算机视觉编程——第一章(基本的图像操作和处理)
  9. 读书笔记之何时重构(下)
  10. java语言_java语言学习
  11. C/C++文件剪切复制删除
  12. spss文件 服务器登录,spss连接远程服务器
  13. 吴恩达机器学习ex5:正则化线性回归和方差与偏差
  14. 一个Lua脚本的解密过程
  15. Vue框架Element UI+Mint UI教程汇总
  16. napa与matlab,纳帕谷产区Napa Valley|酒斛网 - 与数十万葡萄酒爱好者一起发现美酒,分享微醺的乐趣...
  17. JQuery中$(document)是什么意思?
  18. Java开发面试简历这么写,命中率达70%
  19. android手势第一次设置密码_android实现手势密码
  20. 如何合并多个.xlsx文件到一个Excel表格(office16)

热门文章

  1. 在优图网,临摹借鉴设计大咖作品|品图标设计:主要趋势
  2. 剪纸风格的美妆海报设计,你试过吗?
  3. 适用于Photoshop,Xd和Sketch的UI套件
  4. ubuntu 16.04安装mysql_Ubuntu 16.04 安装mysql 5.7.16
  5. 如何用指针判定系统是32bit还是64bit?一次惨痛的经历,想想都脸红
  6. Python推导式comprehension:列表推导式、集合推导式、字典推导式
  7. 糖尿病监测中国际通用的“金标准”
  8. Kotlin 条件控制(六)
  9. springboot多环境切换
  10. java怎么查问题,java线上问题排查(日志、资源、代码定位)