免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 665 | 回复: 0
打印 上一主题 下一主题

文件和目录 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2011-12-22 08:51 |只看该作者 |倒序浏览
基本概念

大多数Linux资源以文件的方式来访问,结果在Linux上有了许多种文件。

  • 普通文件
    磁盘文件,能够进行随机存取的数据存储单位。
  • 符号链接
  • 目录
    目录文件,包含了目录中文件列表的文件。
  • 设备
    设备文件,该文件提供了到大多数物理设备的接口,保存在/dev目录下。他们不是字符型特殊文件就是块特殊文件。
    字符型特殊文件,一次只能读写一个字节或字符的数据。如,调制解调器,打印机,声卡等。一般用于传输数据。
    块特殊文件,必须以一定大小的块来读写数据。如,cd-rom, cd-ram,磁盘驱动器。一般用于存储数据。
  • 套接字
    像管道,但是可以跨机器进程通信。
  • 无名管道和有名管道,unamed pipe & named pipe
    管道是一个数据通道,一端执行写入,一端执行读出。
    无名管道根据需要在内存中创建,通过数字来引用。
    有名管道一般在两个进程需要共享数据而又没有共享文件描述符的时候。

Linux的文件抽象对于所有的东西都按文件来处理,比如,打开,读写,关闭。

文件描述符

文件描述符是个很小正整数,它是一个索引值,指向内核为每一个进程所维护的打开文件的记录表。

每个进程都能打开3个文件,stdin, stdou, stderr。这3个文件对应的描述符是0, 1, 2。

基于描述符的I/O操作最主要的缺点是它不能移植到UNIX以外的系统上去。如果要移植到一个非Linux的环境中,最好使用C标准的I/O功能。

fopen与open的全部

fopen是c语言库函数,open是linux系统函数。

fopen返回文件指针,open返回文件描述符。

设备文件不可以当成流式文件来用,只能用open,fopen是用来操纵正规文件的,并且设有缓冲的。

熟悉了open, close, read, write, lseek, fstat, fcntl, dup, dup2, select, ioctl函数。

标准c的I/O库,包括fopen, fread, fwrite, fclose。

目录操作

目录也可以称为目录文件。

getcwd, chdir, fchdir, mkdir, rmdir, opendir, readdir, closedir。

您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP