系统调用(System Call)
  文件的操作函数(Unix/Liunx系统内部提供的函数)
  time 可以查看程序的运行时间,包括用户层时间和系统层的时间。
  系统调用其实就是一系列的函数,由操作系统提供的用于进入内核空间。用法上系统调用和普通函数一样。

  文件操作函数:
   标C:fopen/fclose/fread/fwrite/fprintf/fseek
   Unix/Linux的系统调用:
   open/close/read/write/ioctl/...
   在Linux系统中,几乎一切都可以看成文件。
   目录是文件、内存是文件、各种硬件设备 ...
   也就是说:open/close/read/write/ioctl 适用于 各种输入输出设备。
   文件相关的标C函数在Unix/Linux系统中,底层都是调用了系统函数。
   文件描述符的概念:
   Unix/Linux中,用一个非负整数代表一个打开的文件,这个非负整数 叫 文件描述符。
   系统在打开文件时,把文件的信息存入文件表,同时把文件表的地址和文件描述符绑定在一起,因此文件描述符 可以对应一个文件。
   0,1,2 这三个数字已经被系统占用了,用来对应标准输入、标准输出、标准错误,所以 程序员的文件描述符从3开始。open函数返回 可用的最小文件描述符。open函数的oflag参数:
   O_RDONLY/O_WRONLY/O_RDWR 对应权限
   O_CREAT/O_EXCL/O_TRUNC  对应创建新文件
   O_CREAT 当文件不存在时,新建,存在时打开
   O_EXCL  和O_CREAT一起使用,文件存在时,不打开而是返回错误
   O_TRUNC 文件存在时,清空文件后打开
   O_APPED 以追加的方式打开

  新建文件时,需要指定权限(作为第三个参数)
同一个文件,可以打开多个文件描述符对应。
文件描述符在Linux系统中最多同时打开256个。
  read/write 第一个参数是 文件描述符(需要open),第二个参数 是一个首地址,第三个参数是 buf的大小,返回实际 读出/写入的字节数,失败返回-1
  write第三个参数是 实际要写入的字节数。

  open,read,write 和 标C函数对比:
  标C函数都 写了缓冲区,累积到一定的数量再调用一次系统调用,因此,频繁的io,标C函数效率稍高,但程序员也可以自定义缓冲区提升代码的效率。

  int arr[1000] = {};

unix c 04的更多相关文章

  1. linux下反弹shell

    01 前言 CTF中一些命令执行的题目需要反弹shell,于是solo一波. 02 环境 win10      192.168.43.151       监听端    装有nc kali        ...

  2. Unix NetWork Programming -- 环境搭建(Ubuntu 12.04 x86_64)

    1. 下载源代码:http://www.ituring.com.cn/book/download/60498ad9-ede6-4023-a92b-04d47be23578 2. 解压文件后进入文件根目 ...

  3. ubuntu14.04下unix网络编程环境的配置

    建议 unpv13e/README看一下,忽略一下内容 ===================================================================== 操作 ...

  4. ubuntu14.04下unix网络编程 环境的配置

    在ubuntu下 首先:在unpv13e文件加下 ./configure cd lib make cd ../libfree make cd ../liggai make cd .. vim lib/ ...

  5. UNIX网络编程卷1 - >环境搭建(ubuntu16.04)

      学习unp网络编程,树上的例子均存在#include“unp.h”,故需要对环境进行配置. 1.到资源页下载www.unpbook.com 2.解压并将unpv13e移动到相应的文件夹下 (因为我 ...

  6. 【unp】unix网络编程卷1-->环境搭建(ubuntu14.04)

    学习unp网络编程,树上的例子均存在#include "unp.h",故需要对环境进行配置. 1. 到资源页下载unpv13e 2. 解压并将unpv13e 移动到相应的文件夹下 ...

  7. Ubuntu15.04安装不完全指南

    0x00. 烧盘 使用UltraISO(破解版)烧录到U盘里,设置电脑从U盘启动,即可安装. 安装时可能出现not COM32R image的命令行,“boot:” 后面直接输入live即可解决问题. ...

  8. ubuntu-14.04.2-desktop使用方法

    一.安装VMware Tools 1. 在VMware Workstation11.1.0下安装Ubuntu镜像:ubuntukylin-14.04.2-desktop-amd64.iso 2. 点击 ...

  9. Windows Server 2008 R2 添加且制成“NFS服务器”角色后与Unix客户端匿名访问常见问题

    在复杂的主机与网络环境中,我们可能会接触到多种主机与操作系统,配合Windows Server 2008 R2的原生“NFS服务器”功能可以让这样的复杂操作系统更方便应用. 然而面对网络上众多的帮助指 ...

随机推荐

  1. 浅谈JVM内存区域划分

    好吧,虽说真的有看过<深入分析Java Web技术内幕>一书,但当时看的时候还是一知半解,稀里糊涂的看完了.本来是打算暑假拿起来再看一遍的,但是早两天一个阿里学长给我做了个小面试,让我颇受 ...

  2. 深入super,看Python如何解决钻石继承难题

    1.   Python的继承以及调用父类成员 python子类调用父类成员有2种方法,分别是普通方法和super方法 假设Base是基类 class Base(object): def __init_ ...

  3. 第31讲 UI组件之 Gallery画廊控件

    第31讲 UI组件之 Gallery画廊控件 1.Gallery的简介 Gallery(画廊)是一个锁定中心条目并且拥有水平滚动列表的视图,一般用来浏览图片,并且可以响应事件显示信息.Gallery只 ...

  4. Oracle 中按条件过滤重复记录

    在数据处理中,经常会遇到类似这样的情况:数据库中存在多条记录,其中某些字段值相同,其他字段值不同.实际的业务需要针对这样的情况,只保留一条数据,其他数据删除.如何做到呢?在sql中有top关键字相对容 ...

  5. 大话分页(补充)——Threadlocal封装offSet和pageSize简化分页工具类

    经过前两篇文章(大话分页一.大话分页二)的介绍,我认为我想介绍的东西已经介绍完了,不过想精益求精的童鞋可以继续看本篇文章. 在第一篇文章中介绍了一个分页的工具类(具体请看大话分页一),从实现功能上来说 ...

  6. [Redux] Extracting Presentational Components -- Footer, FilterLink

    Code to be refactored: let nextTodoId = 0; class TodoApp extends Component { render() { const { todo ...

  7. DotNet程序汉化过程--SnippetCompiler准确定位

    开篇前言 上一篇简单介绍了一下怎么汉化.Net程序,但那也仅仅是最基础的工作,要想汉化好一款软件基础我们得做扎实了,但是对于一些需要技巧的也不能不会啊,这一篇就介绍一下怎么准确定位字符串. 主要使用工 ...

  8. JS 图片预览功能

    <script type="text/javascript">    function DisplayImage(fileTag) {        document. ...

  9. java文件读写的两种方式

    今天搞了下java文件的读写,自己也总结了一下,但是不全,只有两种方式,先直接看代码: public static void main(String[] args) throws IOExceptio ...

  10. PDO事务管理DEMO

    try { $dsn = "mysql:host=127.0.0.1;port=3306;dbname=dab"; $pdo = new PDO($dsn, 'root', '') ...