一、IO
标准io (输入输出)站在计算机角度来确定输入输出,在linux里面io都是对文件操作。
so 动态库函数(共享库),(公共的,用的很多),在user里面存储。
man手册 manual
- 查命令
- 3.系统调用(只能在Linux里面调),3理论上是跨平台。都是函数。
- 设备文件
- 文件格式和方便 /etc(系统级别的配置)
- 游戏
- 杂项
- 管理员命令,最高级别是root
- 内核更新路线
注意
- c库就是一个函数的集合
二、文件读写过程
1、打开文件,file
2、io操作,读写操作
3、关闭文件
2.1 打开文件
参数的设置
操作文件被操作文件都存在,w 清零或者创建新文件 。
2.2 fgetc() 读文件
系统规定用-1表示,不是文件的内容,这是系统反馈的
2.3 fputc()
一个字符一个字符的放。放到那个文件里面
2.4 fgets() 读文件
size的数值尽可能和所开的空间一样,开的空间尽量比这一行长。
#include<stdio.h>
#include<string.h>
int main(int argc,char *argv[])
{
FILE* fp = fopen("/etc/passwd","r");
if(NULL == fp)
{
printf("fopen error\n");
return 1;
}
char buf[512] = {0};
while(1)
{
memset(buf,0,sizeof(buf));
if(fgets(buf,sizeof(buf),fp))
{
printf("%s",buf);
}
else
{
break;
}
}
fclose(fp);
return 0;
}
2.5 fputs() 写文件
字符串写文件代码
#include<stdio.h>
#include<string.h>
int main(int argc,char* argv[])
{
FILE* fp = fopen("3.txt","w");
char buf[]="hello china";
fputs(buf,fp);
fclose(fp);
return 0;
}
2.6 fread()读
一次性放进去,一次性读出类似结构体类型
注意
- 要写的文件 大小 第三个写1就行(结构体数组写几个结构体)一次性写进去可以,最后一个是写哪里去
- 如果读或者写里面没有少了,那么返回值为0
2.6 fwrite() 写
与读操作一样,只是现在是从结构体中往文件里面写。