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 ...
随机推荐
- package.json 中 scripts
"name": "webpack-study1", "version": "1.0.0", "main&quo ...
- 软raid 实验
RAID0 条带卷 2+ 100% 读写速度快,不容错 RAID1 镜像卷 2 50% 读写速度一般,容错 RAID5 带奇偶校验的条带卷 3+ (n-1)/n 读写速度快,容错,允许坏一块盘 RAI ...
- SQL2008所有数据导出导入两种方法
方法一:生成脚本导出导入sql2008所有数据 第一步.右键要导出的数据库.任务--生成脚本 第二步,在设置脚本编写选项处,点击--高级(A),选择要编写脚本的数据的类型为:架构和数据 假设找不到 要 ...
- MyEclipse连接不上genymotion的解决方式
奇怪的是我的MyEclipse有时候连接得上genymotion,有时候又连接不上.之前连接不上的时候,就直接用真机调试,因此出现这个问题非常久了一直都没有去找解决方式.今天认真的反省了自己,再也不能 ...
- 给QQ群发送消息
地址:http://d.web2.qq.com/channel/send_qun_msg2 方式:POST 參数: r = {"group_uin":2393471267,&qu ...
- poj 2240 Bellman-Flod 求环
http://poj.org/problem?id=2240 深刻体现了自己代码能力有问题外加改模板能力有问题.外加Debug有问题.以后做到: 1.算法原理能够轻易弄出来. 2.代码模板自己收集各种 ...
- 理解FPGA中的RAM、ROM和CAM;ROM、RAM、DRAM、SRAM、FLASH
目前大多数FPGA都有内嵌的块RAM(Block RAM),可以将其灵活地配置成单端口RAM(DPRAM,Single Port RAM).双端口RAM(DPRAM,Double Ports RAM) ...
- 数据库阿里连接池 Druid配置详解以及web监控统计
java程序很大一部分要操作数据库,为了提高性能操作数据库的时候,有不得不使用数据库连接池.数据库连接池有很多选择,c3p.dhcp.proxool等,druid作为一名后起之秀,凭借其出色的性能,也 ...
- SQL函数_Charindex()
1 charindex()函数的作用是用于发现目标字符串第一次出现在源字符串中出现的开始位置. 语法如下 : select charinde(目标字符串,列名或字符串[,起始位置]) from 表名
- 《五》uploadify插件上传文件
下载地址:http://www.uploadify.com/wp-content/uploads/files/uploadify.zip 相关配置:http://www.uploadify.com/d ...