1.Linux默认的文件描述符:STDIN_FILENO(标准输入(键盘)) 0 STDOUT_FILENO(标准输出) 1
STDERR_FILENO(标准错误) 2
练习:使用标准I/O,在键盘输入字符串,原样输出
练习:通过文件编程实现Linux的mycp指令
思路:a)打开src.c文件 b)计算src.c文件的字数,并复位光标 c)读取src.c文件,并保存到readbuf中 d)创建des.c文件,并设置文件权限 e)将readbuf的内容写入des.c文件 f)关闭两个文件
main函数的形参: argc代表命令组成的个数 例如:cp a.c b.c argc=3
argv存放对应的命令字符串的数组 例如:cp a.c b.c argv[0]=cp argv[1]=a.c argv[2]=b.c
注意:使用lseek命令计算文件大小后,要复位光标到文件头
注意!!!:文件复制过程中有bug,若创建的文件本身存在且里面有内容,则会出现内容覆盖后任然有多余的原码,故在打开/创建文件时,应附加上一句flags:O_TRUNC,清空里面的内容,再执行写入。
2.文件编程修改文件指定内容
a)打开目标文件 b)保存文件的内容到readbuf c)通过strstr函数匹配对应字符串 d)修改对应位置的数据 e)复位光标 f)将数据程序写入目标文件
3.标准I/O操作
1.打开/创建 fopen(文件路径pname,文件权限type) 返回指向文件流的指针
使用该函数要包含头文件 #include <stdio.h>
type:
2.关闭 fclose(FLIE *fp)
使用该函数要包含头文件 #include <stdio.h>
3.读取 fread(存放字符的空间,每次发送字符长度,发送次数,文件流指针)
写入 fwrite(存放字符的空间,每次发送字符长度,发送次数,文件流指针)
使用该函数要包含头文件 #include <stdio.h>
练习:一个程序将结构体写入文件中,另一个文件读取结构体
4.标准库函数补充
输出一个字符 fputc('a',fp) //输出字符a char *srt="hello" fputc(*str,fp) //使用for输出str字符串
获取一个字符
判断是否到达文件尾 feof(fp) //到达文件尾巴返回非零数,反之返回0