Chinaunix首页 | 论坛 | 博客
  • 博客访问: 16559
  • 博文数量: 8
  • 博客积分: 230
  • 博客等级: 二等列兵
  • 技术积分: 110
  • 用 户 组: 普通用户
  • 注册时间: 2012-06-15 21:57
文章分类

全部博文(8)

文章存档

2012年(8)

我的朋友

分类: LINUX

2012-06-29 15:57:19


       大家都知道的是在里linux中一切都是看作文件操作的。包括外部设备也是看作文件操作。在文件操作中有三个比较特殊的文件,其中有/dev/console系统终端控制台,/dev/tty 进程控制中终端,/dev/null所有写入这个设备的输出都被丢弃。

下面一一介绍文件操作中的各种函数的作用。首先一个程序运行的时候事先会打开三个文件,输入,输出,出错。文件的描述符分别为012.所以如果有文件打开的话,文件标识符应该是从3开始的,其中标准输出和标准出错都是输出到中断的。


#include

size_t write(int fildes,const void *buf,size_t nbytes)

第一个参数 ,文件标识符,第二个 要输入的内容指针,第三个要写入的长度,返回值是写进去的字符的个数。


#include

size_t write(int fildes,const void *buf,size_t nbytes);

把文件中前nbytes字符写入*buf中 返回写入的个数


#include

#include

#include

int open(const char *path,int oflags);

int open(const char *path,int oflags,mode_t mode)

通过文件的路径打开文件,返回的是一个唯一的一个文件标识符。oflags是文件打开模式。基本的有三种O_RDONLY,O_WRONLY,O_RDWR


#include

int close(int fildes)

关闭文件,fildes为文件表示符。


#include

int ioctl(int fildes,int cmd,……);

对描述符制定的对象进行cmd参数给出的操作。作用是用在IO 操作中,在socket中用


其他文件管理有关的系统调用

#include

#include

off_t lseek(int fildes,off_t offset,int whence)

对文件描述符的指针进行操作。offset指定位置。whence定义偏移量,SEEK_SET offset是个绝对位置。SEEK_CUR offset相当于当前位置的一个相对位置, SEEK_END offset是相对于文件尾的一个相对位置。 返回偏移字节,失败返回-1


#include

#include

#include

int fstat(int fildes,struct stat *buf);

int stat(const char *path,strut stat *buf);

int lstat(const char *path,struct stat *buf);

将文件的状态信息写复到buf结构中 stat结构体中包括的内容有

st_mode 文件权限和文件类型信息 st_ino 与该文件关联的inode

st_dev 保存文件的设备 st_uid 文件属主的uid st_gid 文件属主的gidst_atime 文件上次被访问的时间 st_ctime 文件的权限,属主 组或者内容上上次改变的时间

st_mtime 文件的内容上次被修改的时间 st_nlink 文件上硬链接的个数


#include

int dup(int fildes);

int dup2(int fildes,int fides2);

提供了复制文件描述符的方法,dup复制文件描述符,返回一个文件描述符。 dup2 把一个文件描述符复制为另一个文件描述符


上面讲的都是关系系统调用的文件操作 下面要说的是标准的I/O库操作,包含在stdio.h

#include

FILE *fopen(const char *filename,const char *mode)

文件打开函数,开打由参数filename指定的文件,成功返回非空的FILE指针,失败返回一个空NULL指针。而且mode应该是字符串 而非字符。


#include

size_t fread(void *ptr,size_t,size size_t nitems,FILE *stream)

stream读到ptr指向的数据缓冲区中。size参数指定每个数据记录的长度,计数器nitems给出要传输的记录的个数。返回值是成功地读到数据缓冲区的记录的个数。


#include

size_t fwrite(const void *ptr,size_t size, size_t nitems, FILE *stream)

从指定的缓冲区巴蜀据写入流中。返回成功写入记录的个数。


阅读(256) | 评论(0) | 转发(0) |
0

上一篇:Shell 脚本的学习笔记

下一篇:小小计划

给主人留下些什么吧!~~