Summary Day32
1 . 文件管理
1.1 标C文件处理和UC文件处理函数的比較:
标C文件处理函数比UC的文件处理函数速度快。由于标C内部独立输入输出缓冲区,
会积累一定数量之后再写入文件,因此读写效率比較高
使用time命令能够获取进程的执行时间
time b.out
real 0m0.081s =>真实时间
user =>
用户态时间
sys =>
内核时间
1.2 文件描写叙述符:
进程 =》
文件描写叙述符表=》文件表=》V字节(包括I字节)
文件描写叙述符就是一个整数,能够代表打开的文件,可是文件的信息不是存在文件描写叙述符中,而是存在文件表等结果中
当打开一个文件时。系统会把文件的信息存入文件表等结构中,可是处于安全的考虑。文件表等结构并非直接操作。而
是给文件表相应一个编号,拿着编号进行操作。而编号就叫做文件描写叙述符
在进程的内部维护一张文件描写叙述符的总表。当使用open函数打开文件时,就会载入该文件的信息到内存中,然后去文件描写叙述符
总表查找一个最小的未被使用的描写叙述符建立和文件表相应的关系。而文件描写叙述符是非负整数
close函数不会改变文件描写叙述符的整数值,仅仅是会让描写叙述符无法代表一个文件
1.3 dup/dup2函数
#include <unistd.h>
int dup(int oldfd);
函数功能: 主要用于依据參数指定的描写叙述符进行复制,成功返回新的描写叙述符,失败返回-1
int dup2(int oldfd, int newfd);
函数功能:主要用于将oldfd參数指定的文件表地址复制到newfd中,假设newfd占用,则考虑强制关闭。
成功则返回文件描写叙述符,失败返回-1
1.4 fcntl函数
#include <unistd.h>
#include <fcntl.h>
int fcntl(int fd, int cmd, ..../*arg*/);
第一个參数:文件描写叙述符(对哪个文件操作)
第二个參数:命令/操作(运行什么样的操作)
F_DUPFD
F_GETFD/F_SETFD
F_SETFL/F_SETGL
F_SETLK/F_SETLKW/F_GETLK
第三个參数:可变长參数
函数功能:
(1)主要用于拷贝文件描写叙述符
(2)设置、获取文件描写叙述符的功能
(3)设置获取文件状态标志的功能
(4)主要勇于实现建议文件锁的功能
1.5 使用fcntl实现文件锁的功能
(1)文件锁的作用
当有多个进程同一时候对一个共享文件进行读写操作时,可能会造成数据混乱和不一致性。理论上应该要求多个进程对文件
操作进行串行而不是并行,假设两个进程都是读文件则同意同一时候进行,仅仅要有一个写操作。则另外一个进程应该等待,为
了实现该功能,须要借助文件锁来实现
(2)实现文件锁的功能,
fnctl函数的第三个參数值: 结构体指针
结构体: struct flock
Summary Day32的更多相关文章
- Summary of Critical and Exploitable iOS Vulnerabilities in 2016
Summary of Critical and Exploitable iOS Vulnerabilities in 2016 Author:Min (Spark) Zheng, Cererdlong ...
- 三个不常用的HTML元素:<details>、<summary>、<dialog>
前面的话 HTML5不仅新增了语义型区块级元素及表单类元素,也新增了一些其他的功能性元素,这些元素由于浏览器支持等各种原因,并没有被广泛使用 文档描述 <details>主要用于描述文档或 ...
- [LeetCode] Summary Ranges 总结区间
Given a sorted integer array without duplicates, return the summary of its ranges. For example, give ...
- Network Basic Commands Summary
Network Basic Commands Summary set or modify hostname a) temporary ways hostname NEW_HOSTNAME, b ...
- Summary - SNMP Tutorial
30.13 Summary Network management protocols allow a manager to monitor and control routers and hosts. ...
- Mac Brew Install Nginx Summary
==> Downloading https://homebrew.bintray.com/bottles/nginx-1.10.1.el_capitan.bot################# ...
- Leetcode: LFU Cache && Summary of various Sets: HashSet, TreeSet, LinkedHashSet
Design and implement a data structure for Least Frequently Used (LFU) cache. It should support the f ...
- How to add taxonomy element to a summary view?
[re: Orchard CMS] This caused me scratching my head for days and now I can even feel it's bleeding. ...
- (转) Summary of NIPS 2016
转自:http://blog.evjang.com/2017/01/nips2016.html Eric Jang Technology, A.I., Careers ...
随机推荐
- sql查询 按照规定的顺序返回结果集。
DECODE函数 oracle 独有,功能强大.相当于 if else if IF 条件=值1 THEN RETURN(翻译值1)ELSIF 条件=值2 THEN RETURN(翻译值2) ..... ...
- wall---向系统当前所有打开的终端上输出信息
wall命令用于向系统当前所有打开的终端上输出信息.通过wall命令可将信息发送给每位同意接收公众信息的终端机用户,若不给予其信息内容,则wall命令会从标准输入设备读取数据,然后再把所得到的数据传送 ...
- python3+opencv+tkinter开发简单的人脸识别小程序
学校里有门图像处理的课程最终需要提交一个图像处理系统, 正好之前对于opencv有些了解,就简单的写一个人脸识别小程序吧 效果图如下 笔者IDE使用Pycharm,GUI编程直接使用内置的tkinte ...
- 基于ArcGIS Flex API实现动态标绘(1.2)
动态标绘API 1.2,相较前一版本号(点击进入),该版本号新增对基本标绘符号的支持,包含: 单点.多点.折线.手绘线.多边形.手绘多边形.矩形,并提供对应的编辑功能. 例如以下图所看到的,对多点的编 ...
- difference in physical path, root path, virutal path, relative virtual path, application path and aboslute path?
http://stackoverflow.com/questions/13869817/difference-in-physical-path-root-path-virutal-path-relat ...
- vsphere平台windows虚拟机克隆的小插曲(无法登陆系统)
问题: 1.克隆完windows虚拟化后输入法乱码. 2.开启远程的情况下远程登录输入正确的密码也无法登录. 解决: 1.更改管理员用户密码(不输入原win7密码更改win7密码). 2.重新启用管理 ...
- UTC时间 GMT时间 本地时间 北京时间 时区 夏令时简要说明
1.UTC时间 与 GMT时间 整个地球分为二十四时区,每个时区都有自己的本地时间.为了统一起见,使用一个统一的时间,称为通用协调时(UTC, Universal Time Coordinated). ...
- 学习《R数据科学》高清中文PDF+高清英文PDF+源代码
学习R有不会的就查工具书<R数据科学>, 工具不是重点,创造价值才是目的.具体到数据科学,表现形式往往是提供解决方案或者做出某种决策.至于使用什么语言,采用什么工具,不本质.用 R 还是 ...
- react基础用法二(组件渲染)
react基础用法二(组件渲染) 如图所示组件可以是函数 格式:function 方法名(){ return <标签>内容</标签>} 渲染格式: <方法名 /> ...
- mysql查一张表有哪些索引
可以用这个命令: show index from table_name; 得到输出: +------------------+------------+------------+----------- ...