嵌入式Linux07教案详解.ppt

  1. 1、本文档共114页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
练习 1.打开一个文件/tmp/file.txt用于写操作,以追加方式打开,int a=open(___,___) 2.打开一个文件/tmp/file.txt用于写操作,如果该文件不存在则创建,对所有用户文件为可读可写可执行。 int a=open(___,___,____) 3.打开一个文件/tmp/file.txt用于写操作,如果该文件存在则删除原数据,如果该文件不存在则创建。int a=open(___,___,____) 4.打开一个文件/tmp/file.txt用于写操作,如果该文件存在则报错退出,如果该文件不存在则创建,文件只对用户自己为可读可写可执行。int a=open(___,___,____) 5.可以用close(0)关闭文件,可以用close(1)吗? 补充 creat()函数 除了open( )函数中用O_CREAT选项创建文件以外,可以用creat()函数,格式: int creat(const char * pathname, mode_t mode) 若成功,返回为只写打开的文件描述符 若出错,返回-1 不足之处:它以只写方式打开所创建的文件。 文件名颜色的含义 默认色代表普通文件。 例:mysum 绿色代表可执行文件。 例:userdata 蓝色代表目录文件。 例:红色代表tar包文件。 其它 ,水红代表图象文件,青色代表链接文件,黄色代表设备文件。 补充1chmod命令 chmod mode file mode : 权限设定字串,格式如下 : [ugoa...][[+-=][rwx]其中u 表示该档案的拥有者,g 表示与该档案的拥有者属于同一个群体(group)者,o 表示其他以外的人,a 表示这三者皆是。 + 表示增加权限、- 表示取消权限、= 表示唯一设定权限。? 补充2目录与一般文件的区别 目录也属于文件 r? (read contents in directory):拥有这个权限,就能够读取目录结构,也就是可以使用ls命令将目录内容列出来。 w?? (modify contents of directory):拥有这个权限,可以更改目录结构。常见的操作为: --- 建立新的文件和目录; --- 删除文件和目录; --- 重命名文件和目录; --- 移动文件和目录; x? (access directory):决定这能否进入目录。如果使用的账户对某个目录没有x权限,那么使用cd命令的时候,就无法进入目录。 举一个linux下的常见目录来做例子,也就是 /tmp 目录来说一下粘连位的作用。 #ls -dl /tmp 注意other位置的t,这便是粘连位。 作用:让用户只能删除属于自己的文件 * 注:假如本来在该位上有x, 则这些特别标志 (suid, sgid, sticky) 显示为小写字母 (s, s, t). 否则, 显示为大写字母 (S, S, T) 。 想要获取某目录下(比如a目下)d文件的文件名,我们应该怎样做? 首先,我们使用opendir函数打开目录a,返回指向目录a的DIR结构体c。 接着,我们调用readdir( c)函数读取目录a下所有文件(包括目录),返回指向目录a下所有文件的dirent结构体d。 然后,我们遍历d,调用d-name来获取每个文件的文件名。 想要获取某目录下(比如a目下)b文件的详细信息,我们应该怎样做? 首先,我们使用opendir函数打开目录a,返回指向目录a的DIR结构体c。 接着,我们调用readdir( c)函数读取目录a下所有文件(包括目录),返回指向目录a下所有文件的dirent结构体d。 然后,我们遍历d,调用stat(d-name, stat *e)来获取每个文件的详细信息,存储在stat结构体e中。 总体就是这样一种逐步细化的过程,在这一过程中,三种结构体扮演着不同的角色。 范例 opendirmy.c 标准I/O提供了3种类型的缓存类型 全缓存:I/O操作是在I/O缓存被填满时才发生的。磁盘上的文件通常是全缓存的。 行缓存:I/O操作是在输入或输出时遇到新行符时才发生。stdin、stdout通常是行缓存的。 不带缓存:相当于read、write了。stderr通常是无缓存的,因为它必须尽快输出。 fopen 和open fopen在用户态下就有了缓存,在进行read和write的时候减少了用户态和内核态的切换,而open则每次都需要进行内核态和用户态的切换; 表现为,如果顺序访问文件,fopen系列的函数要比直接调用open系列快;如果随机访问文件open要比fopen快。 读写文件 3. 按字符读/写文件 fgetc/getc/getchar读 fputc/putc/putchar写

文档评论(0)

南非的朋友 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档