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的更多相关文章

  1. Summary of Critical and Exploitable iOS Vulnerabilities in 2016

    Summary of Critical and Exploitable iOS Vulnerabilities in 2016 Author:Min (Spark) Zheng, Cererdlong ...

  2. 三个不常用的HTML元素:<details>、<summary>、<dialog>

    前面的话 HTML5不仅新增了语义型区块级元素及表单类元素,也新增了一些其他的功能性元素,这些元素由于浏览器支持等各种原因,并没有被广泛使用 文档描述 <details>主要用于描述文档或 ...

  3. [LeetCode] Summary Ranges 总结区间

    Given a sorted integer array without duplicates, return the summary of its ranges. For example, give ...

  4. Network Basic Commands Summary

    Network Basic Commands Summary set or modify hostname a)     temporary ways hostname NEW_HOSTNAME, b ...

  5. Summary - SNMP Tutorial

    30.13 Summary Network management protocols allow a manager to monitor and control routers and hosts. ...

  6. Mac Brew Install Nginx Summary

    ==> Downloading https://homebrew.bintray.com/bottles/nginx-1.10.1.el_capitan.bot################# ...

  7. 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 ...

  8. 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. ...

  9. (转) Summary of NIPS 2016

    转自:http://blog.evjang.com/2017/01/nips2016.html           Eric Jang Technology, A.I., Careers       ...

随机推荐

  1. HTML5按键打开摄像头和拍照

    HTML5实现按键打开摄像头和拍照 步骤: 1.创建一个打开摄像头按钮的标签.video标签.拍照的按钮标签.画布 2.实现打开摄像头的功能 3.实现拍照功能   具体实现代码: <!DOCTY ...

  2. bzoj 3408 热浪 最短路

    一道最短路的模板题,就当练习一下SPFA和dijkstra了 SPFA #include<bits/stdc++.h> using namespace std; struct edge{ ...

  3. conda常用命令,如何在conda环境中安装gym库?

    查看已安装的环境: conda info -e 或 conda env list 创建新环境gymlab: conda create -n gymlab python=3.5 激活环境gymlab: ...

  4. js使用offsetHeight获取div高度为0的问题

    今晚试了好久没弄出来,后来获取子一层的div就能获取到高度了 我的情况是这样的:我在最外面写一个<div id="mainBody">,  里面写bootstrap的d ...

  5. IOS开发之蘑菇街框架

    近期公司的项目全然仿了蘑菇街client的框架,自己从网上找了一下,没有发现源代码.问遍各大QQ群也没有结果.上周五晚上一直在思考这个框架怎样搭建,周六早上有了灵感.写了一半.今天接着完好了一下. 在 ...

  6. Ext4.0 经常使用代码整理(一)

    一:经常使用工具条上的定义 // 工具条 var toolbar = Ext.create("Ext.Toolbar", {             items : [ yearC ...

  7. java 爬虫在 netbeans 里执行和单独执行结果不一样

    在做内容測试的时候.发现我的爬虫(前些文章略有提及)在 netbeans 里面可以成功爬取网页内容,而单独执行时,给定一个 url,爬到的网页却与在浏览器里面打开 url 的网页全然不一样,这是一个非 ...

  8. oc数据类型分类

    OC数据类型能够分为 基本类型.构造类型.指针类型.空类型 基本类型可分为 整型.字符型.枚举型.浮点型(float类型.double类型) 构造类型可分为 数组类型.结构体类型.公用体类型 指针类型 ...

  9. .NET进阶——ORM基础认识

    ORM对象关系映射,对象即实体,关系即关系数据库表.ORM即实现从实体对象关系数据库数据的映射. 本质上就是将数据从一种形式转换到还有一种形式.它详细又有哪些表现呢.咱们一步步学习,一步步分析. OR ...

  10. 如何下载最新版的 Adobe Flash Player

    如何下载最新版的 Adobe Flash Player 中国访客用代理访问下面的链接,否则会自动跳转到 https://www.flash.cn/ 当我们从 https://get.adobe.com ...