glean 捡拾落穗; glean insight 深入了解 modeled模型化 peripheral外围的 himogeneous匀称的 intents 意图  excerpt摘录 intended预期的 underscore下划线 着重强调 collide 碰撞 retrieve取回 coalesced联合 合并

1读写文件前要向系统表示意图 俗称打开文件 系统会检查你的权限 如果OK 就会像程序返回一个非负整数 该整数成为文件描述符 file desriptors

如何时候输入/输出都通过文件描述符 而不是文件名(类似文件指针或者MSDOS的文件句柄)

2解释程序(shell)运行程序时打开三个文件 对应描述符为0 1 2 依次表示 stdin stdout stderr 程序从0读 从1 2写就不用担心打开文件的问题

prog <infile  >outfile 重新定向输入输出

int n_read = read(int fd,char *buf,int n);  //第一个为文件描述符 第二参数是数据的来源或者去向 第三参数是多少字节 bytes的数据要被传输

~ _written = write ~

每个函数都返回传输的字符数 读来说 返回0则是文件尾 -1 则是错误  写来说 如果有错误 那么实际写入数就会和请求的的数字不相等

3 open类似于fopen 但是返回的是一个文件描述符

int open (char *name,int flags,int perms);  //name还是文件名 ,flags有以下几种,perms在这里说的程序都是0

o_rdonly 只读  o_wronly 只写 o_rdwr 读写

如 fd = open(name,o_rdonly,0);  如果打开一个不存在的文件会报错

4 int create(char *name,int perms); fd = creat(name,perms); 如果不能创建文件返回-1 否则返回文件描述符 如果文件已经存在 create会让他清空不会报错

其中perms控制了读写或者接入信息给所有者或者所有群或者其他人

比如0775 表示对所有者读写执行许可 对其他人和团体的读和执行许可

5vprintf对应printf 变长参数变为一个参数

vfprintf 和vsprintf对应fprintf和sprintf

close(int fd) 类似fclose 他是关闭描述符和文件链接(文件数有限制的一般为20)以供其他文件使用 但是不刷新缓存区

如果使用exit返回 所有的文件会被关闭

unlink(char *name)将文件name从文件系统中移除 类似remove

6long lseek(int fd,long offset,int orgin);将文件描述符fd的文件当前位置设置为offset offset是相对于origin的位置而言的

origin可以为0 1 2 分别代表 文件开始 当前位置 文件末尾开始算起

如在文件尾添加内容(unixshell 用重新定向》或者在fopen中用参数a)

lseek(fd,0L,2);

如要在开始处(反绕)

lseek(fd,0L,0); 0L可以写成 (long)0或者0 但是调用的时候会保持一致

之后大题介绍了下几个库里常用函数的 代码 有兴趣的话可以自己多看看

the c programing language 学习过程8的更多相关文章

  1. the c programing language 学习过程7

    interact 互动 carriage运费运输 linefeed 换行 redirection改方向 interleaved交叉存取 adequate足够的 untouched原样的  specif ...

  2. the c programing language 学习过程6

    payroll工资名单 hierarchy分层层次 vexing 使人烦恼的 alignment结盟 semantics 语义 aethetic审美 parameterize 参数化 1结构标记 成员 ...

  3. the c programing language 学习过程5

    lumped 集成总结 mandating托管 consecutively连续地 contiguous临近的 mnemonic记忆力的 mimics 酷似 魔方 bind捆绑 synonym同义词 s ...

  4. the c programing language 学习过程4

    4Functions and Program Structure scratch 刮擦 starting over from scratch从头开始 reside驻留 separately 分别的 f ...

  5. the c programing language 学习过程3

    ControlFlow  控制流 specify 指定 compound statement 复合语句 cryptic有隐含意义的 ambiguity歧义 robust稳健 disintegratio ...

  6. the c programing language 学习过程2

    manipulated 操纵  notations符号 hexadecimal十六进制 precision精度 be concatenated at 把····联系起来 enumerations枚举  ...

  7. 使用一个数组存储一个英文句子"java is an object oriented programing language"

    class fun { public static void main(String[] args) { String str="java is an object oriented pro ...

  8. The python programing language

    Python is an example of high-level language. As you might infer from the name “high-level language”, ...

  9. Linux下C高手成长过程

    建议学习路径:  首先先学学编辑器,vim, emacs什么的都行. 然后学make file文件,只要知道一点就行,这样就可以准备编程序了.  然后看看<C程序设计语言>K&R, ...

随机推荐

  1. 用Python实现几种排序算法

    #coding=utf-8 # 1 快速排序算法 def qksort(list): if len(list)<=1: return list else: pivot = list[0] les ...

  2. Linux指令--ping

    Linux系统的ping命令是常用的网络命令,它通常用来测试与目标主机的连通性,我们经常会说"ping一下某机器,看是不是开着".不能打开网页时会说"你先ping网关地址 ...

  3. webpack + vue

    开始之前 本文包含以下技术,文中尽量给与详细的描述,并且附上参考链接,读者可以深入学习: 1.webpack2.Vue.js3.npm4.ES6语法 前言 在对着产品高举中指怒发心中之愤后,真正能够解 ...

  4. cJSON使用

    cJSON是使用C语言编写的   关于JSON数据的   编解码库,使用方便简单 编译时注意后面要跟-lm参数,否则编译会报错 解析JSON数据包流程: 1.调用cJSON_Parse()函数,解析J ...

  5. IO (四)

    1 深度遍历文件夹 示例: package java20; import java.io.File; import java.io.FilenameFilter; import java.text.S ...

  6. win10下端口被占用解决办法

    调试socket通信的时候,如果程序未正常结束,重新启动会报端口被占用的错误. 一 查找被占用的端口 解决办法如下:按win+R输入cmd打开控制台,输入 netstat -ano|findstr 8 ...

  7. Java细节

    native关键字用法 native是与C++联合开发的时候用的!java自己开发不用的! 使用native关键字说明这个方法是原生函数,也就是这个方法是用C/C++语言实现的,并且被编译成了DLL, ...

  8. web.config文件中配置数据库连接的两种方式

    web.config文件中配置数据库连接的两种方式 标签: 数据库webconfig 2015-04-28 18:18 31590人阅读 评论(1)收藏举报    分类: 数据库(74)  在网站开发 ...

  9. python扒取百宝彩网站江西快三当日期号及开奖结果

    一.环境 windows10+python27 二.需求: 1.获取百宝彩网站中,江西快三当日的开奖期号和中奖号码: 2.根据输入期号,输出开奖号码: 三.上代码 #!/bin/env python ...

  10. fiddler2请求参数乱码

    win7 1.windows按钮+R 2.输入regedit +回车+是 3.HKEY_CURRENT_USER\Software\Microsoft\Fiddler2 4.右键新建,选字符串值 加上 ...