the c programing language 学习过程8
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的更多相关文章
- the c programing language 学习过程7
interact 互动 carriage运费运输 linefeed 换行 redirection改方向 interleaved交叉存取 adequate足够的 untouched原样的 specif ...
- the c programing language 学习过程6
payroll工资名单 hierarchy分层层次 vexing 使人烦恼的 alignment结盟 semantics 语义 aethetic审美 parameterize 参数化 1结构标记 成员 ...
- the c programing language 学习过程5
lumped 集成总结 mandating托管 consecutively连续地 contiguous临近的 mnemonic记忆力的 mimics 酷似 魔方 bind捆绑 synonym同义词 s ...
- the c programing language 学习过程4
4Functions and Program Structure scratch 刮擦 starting over from scratch从头开始 reside驻留 separately 分别的 f ...
- the c programing language 学习过程3
ControlFlow 控制流 specify 指定 compound statement 复合语句 cryptic有隐含意义的 ambiguity歧义 robust稳健 disintegratio ...
- the c programing language 学习过程2
manipulated 操纵 notations符号 hexadecimal十六进制 precision精度 be concatenated at 把····联系起来 enumerations枚举 ...
- 使用一个数组存储一个英文句子"java is an object oriented programing language"
class fun { public static void main(String[] args) { String str="java is an object oriented pro ...
- The python programing language
Python is an example of high-level language. As you might infer from the name “high-level language”, ...
- Linux下C高手成长过程
建议学习路径: 首先先学学编辑器,vim, emacs什么的都行. 然后学make file文件,只要知道一点就行,这样就可以准备编程序了. 然后看看<C程序设计语言>K&R, ...
随机推荐
- yum错误,Cannot find a valid baseurl for repo: base 和 No more mirrors to try
可能出错原因: 1. yum 配置错误 2. 虚拟机无法连接外网 3. 域名解析没有 如何解决这个错误? 1. 网上找 /ect/yum.conf 和 /etc/yum.repos.d/CentOS- ...
- 三、Html常用标签
1,基本标签 <html>:html文档的根元素,可以指定一个xmlns属性,值只能是http://www/w3.org/1999/xhtml. <body>:页面主体部分 & ...
- linkin大话设计模式--适配器模式
linkin大话设计模式--适配器模式 大家知道,在java中只允许单继承,但是在实际问题中往往都需要多继承,java引入了接口这一概念.(一个类可以实现多个接口) 由于接口中都是抽象方法,那么我们在 ...
- linkin大话数据结构--Map
Map 映射关系,也有人称为字典,Map集合里存在两组值,一组是key,一组是value.Map里的key不允许重复.通过key总能找到唯一的value与之对应.Map里的key集存储方式和对应的Se ...
- auto和bool
一.auto' 1.只要在函数内部定义变量,默认是auto int num 等价于 auto int num = 10; 2.C语言中的auto关键字就是自动分配自动释放 二.bool类型 1.头文 ...
- 康盛(discuz )牛逼的PHP加解密算法函数
1.前言 康盛的 authcode 函数很牛叉,是一个具有有效期的加解密函数,同一个字符每次加密所产生的结果都是不一致的,并且可以自定义设置过期时间. 设计原理:authcode 是使用异或运算进行加 ...
- flask----flask-session
一.flask-session flask-session是flask框架的session组件,由于原来flask内置session使用签名cookie保存,该组件则将支持session保存到多个地方 ...
- IIS6/7 配置问题
IIS7 / IIS6 HttpMoudles 在web.config 中不同的配置 原创 2011年04月25日 08:44:00 标签: iis / server 4357 昨天把我们写的程序布署 ...
- 02_Linux图形界面及文件系统结构介绍
一.根目录 / : 它跟Windows的C.D.E.F不同,在Linux中,所有的文件系统(光驱.U盘.硬盘)都挂载到根目录的某一个文件夹下 bin : 存放二进制可执行文件 sbin ...
- python中的函数对象与闭包函数
函数对象 在python中,一切皆对象,函数也是对象 在python语言中,声明或定义一个函数时,使用语句: def func_name(arg1,arg2,...): func_suite 当执行流 ...