man手册
man手册
标准man手册分为8个章节:
man 1 用户命令
man 2 系统调用
man 3 c函数库调用
man 4 设备文件和特殊文件
man 5 配置文件和格式
man 6 游戏相关
man 7 杂项,总述
man 8 管理类命令
标准IO
1.fopen
1.fopen
FILE *fopen(const char *pathname, const char *mode);
参数:
pathname:
类型:const char *
描述:要打开的文件的名称(包括路径)。如果文件名是相对路径,则相对于当前工作目录。如果是绝对路径,则直接按照路径打开。(可以通过主函数传参)
mode:
类型:const char *
描述:打开文件的模式。常用的模式有:
"r":以只读模式打开文件(文件必须存在)
"r+":以读写模式打开文件(文件必须存在)
"w":以只写模式打开文件(如果文件存在,则清空文件内容;如果文件不存在,则创建一个新文件)
"w+":以读写模式打开(如果文件存在,则清空文件内容;如果文件不存在,则创建一个新文件)
"a":以附加模式打开(文件指针指向文件末尾。如果文件不存在,则会创建一个新文件)
"a+":以读写模式打开文件(文件指针指向文件末尾。如果文件不存在,则会创建一个新文件)
返回值:
成功:返回一个指向 FILE 结构体的指针 通过这个指针可以进行后续的文件操作,如读写文件、关闭文件等
失败:返回 NULL 可以通过调用 errno 和 perror() 或 strerror() 函数获取错误信息。
2.fclose
2.fclose
int fclose(FILE *stream);
参数:
stream:
类型:FILE *
描述:指向 FILE 结构体的指针,这个指针是先前通过 fopen 或其他文件操作函数(如 freopen)获得的。它代表了要关闭的文件。
返回值:
成功:
返回 0。表示文件已成功关闭,所有缓冲区的内容都已被写入文件,文件描述符已被释放。
失败:
返回 EOF(通常是 -1)。表示在关闭文件过程中发生了错误。可以通过 perror() 或 strerror(errno) 函数获取具体的错误信息。
3.fgetc
3.fgtec
int fgetc(FILE *stream);
参数:
stream:指向 FILE 类型的指针,表示要从中读取字符的文件流。
返回值:
成功:fgetc 返回读取到的字符(以 int 类型表示)。字符会被转换为其 ASCII 值。
如果到达文件末尾(EOF),或者发生了读取错误,fgetc 返回 EOF(通常是 -1)。要注意的是,EOF 是一个特殊的常量,用于表示读取失败或文件结束的条件。
4.fputc
4.fputc
int fputc(int character, FILE *stream);
参数:
character:
要写入的字符,以 int 类型表示
虽然是以 int 类型传递,但 fputc 实际上只处理字符的低八位(即 unsigned char),高位部分被忽略
stream:
指向 FILE 类型的指针,表示要将字符写入的文件流
返回值:
成功:fputc 返回写入的字符(以 unsigned char 类型表示),并且被转换为 int 类型
失败:fputc 返回 EOF(通常是 -1),并且设置 errno 以指示错误原因
5.fgets
5.fgets
char *fgets(char *s, int size, FILE *stream)
功能:
从stream流对象关联的文件中获取size大小字节的文本数据
并存储到s对应的本地内存(栈区数组,堆区内存)
参数: s 要存储数据的本地内存(栈,堆)
size 要获取的数据长度,单位字节。
stream 要获取的目标文件流对象,
可以是stdin ,程序会阻塞等待
如果是普通文件fp 则指向文件第一行数据
返回值:
成功 :返回指向有效数据的首地址,一般等于s的地址
失败 :或者 文件末尾 NULL;
注意:
1.fgets能读取一行就读取一行
2.fgets会读到n个数据,如果n个数据中存在\n字符则立即停止当
前的读取操作,如果没有\n,则读取n-1个字符,最后一个存储\0
3.fgets每行读取的数据后面都有一个\n,在\n后面存放一个\0
12345
buf[] = '1''2''3''4''5''\n''0'
6.fputs
功能:
向流中写入一行字符串
参数: s
要写的信息,一般是固定的字符串或者有数据的数组。
stream
要写入的目标文件流对象
返回值:成功 返回写入的字符数(即写入的字符串长度)
失败 -1/返回 EOF(表示文件写入出错)
注:
不写入 '\0'
puts和fputs的区别:
1.fputs不会自动增减\n
2.puts 会多打印\n字符