linux系统编程

在UNIX/Linux系统中,文件操作是系统编程和日常使用中不可或缺的一部分。文件不仅限于传统的文本或二进制数据,还包括目录、设备、管道等。下面我将详细解释一些常用的文件操作函数和概念。

文件描述符

在UNIX/Linux中,文件描述符(File Descriptor)是一个非负整数,用于表示打开的文件、套接字、管道等。每个进程都有自己独立的文件描述符表,用于跟踪打开的文件。标准输入(stdin)、标准输出(stdout)和标准错误(stderr)分别用文件描述符0、1、2表示。

文件分类

  • 文本文件:包含人类可读的字符数据,如源代码、文本文档、HTML文件等。文本文件通常包含换行符(如\n)作为行的结束标志。
  • 二进制文件:包含非文本数据,如可执行文件、图片、音频、视频等。二进制文件中的数据以字节为单位存储,不直接对应人类可读的字符。
  • 示例:

    数据 65536

    字符串方式:"65536"         空间 6byte 文本文件

    整形方式:                  空间 4byte, 二进制文件

  • 不同类型所占空间不一致

文件操作函数

标准I/O函数(基于stdio.h)
  • fopen():打开文件,并返回一个指向FILE对象的指针。
  • fclose():关闭一个打开的文件。
  • fread():从文件流中读取数据。
  • fwrite():向文件流中写入数据。
  • getc() 和 getchar():从文件或标准输入中读取一个字符。getchar()getc(stdin)的宏定义。
  • gets()(已废弃):从标准输入读取一行,但由于可能导致缓冲区溢出,已被废弃。建议使用fgets()代替。
  • fgets():从文件或标准输入中读取一行,并存储到字符串中。
  • fseek():移动文件内的读写位置指针。
低级I/O函数(基于unistd.h或fcntl.h)        
  • open():打开和可能创建一个文件,返回一个文件描述符。
  • close():关闭一个打开的文件描述符。
  • read():从文件描述符指向的文件中读取数据。
  • write():向文件描述符指向的文件中写入数据。
  • lseek():移动文件读写位置指针。
其他函数
  • file 命令:在shell中,file 文件名命令用于显示文件的类型信息。
  • sprintf():虽然不直接用于文件操作,但它是C语言中用于格式化字符串的强大函数,经常与文件操作结合使用,以构建要写入文件的字符串。

  • 8
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值