shell编程
for循环
seq命令
用法如下:
累加求和
while循环
累加求和:
until循环
累加求和
文件编程:
文件类型:
b 块设备文件 硬盘
c 字符设备 鼠标,键盘
d 目录文件
- 常规文件
l 软连接文件 类似Windows快捷方式
s socket 套接字文件 用于进程间及网络通信
p pipe管道 进程间通信
Linux设计的思想:
一切皆文件
everything is file!
音响 // 识别 字符设备文件
好处:
摄像头:字符设备识别文件
标准IO
1.打开
2.写
3.读
4.关闭
1.打开操作
fopen // f-file
stream---流//
打印错误信息:
perror();//打印出错信息
eg:
perror(“自定义的话”);
最终打印效果:
自定义的话:出错原因
perror(“fopen fail”);
return -1;
FILE* //文件指针/流指针
此后,关于文件的相关操作,都是围绕流指针展开的
2.读写操作
标准IO
fgetc/fputc //按字符读写
fgets/fputs //按字符串读写(按行读写)
fread/fwrite//按对象读写(二进制读写)
fgetc
int fgetc(FILE* stream)
功能:
从文件中提取数据
参数:
@stream fopen 打开的文件对应的流指针fp
返回值:
成功 返回读到的字符的ascii码值
失败或读到文件结尾EOF(-1)
注意:
EOF//End Of File
文件结束的标志,但是文件中并不存在EOF
fputc
#include <stdio.h>
int fputc(int c,FILE *stream)
功能:在文件中输出数据
参数:
@c要输出的字符数据
@stream 要输出的文件的指针
返回值:
成功 返回输出了的字符的ASCII码值
失败-1
系统默认打开了三个文件:
标准输入文件 --- stdin
标准输出文件 --- stdout
标准出错文件 --- stderr
键盘上产生EOF --- ctrl + d
cat+文件名---显示文件内容
fgets按字符串读写
char *fgets(char *s,int size,FILE *stream)
功能:
从文件中读取多个字符,处理成字符串
参数:
@s 代表要存放数据的一块空间的首地址
@size 表示一次读取多少个字符 // 10 // 最多读10-1=9个
@stream 要读取的文件的流指针
fgets读取数据:
读取结束的条件:
1.读满了size
2.读到了EOF
3.读到了\n
返回值:
成功 返回字符串s的首地址
失败 返回NULL
补充:od -c命令(能看见不可见字符)
使用方法:od -c 文件名
关闭操作:
#include <stdio.h>
int fclose(FILE *stream);
操作:fclose(); // file
1.刷新流
2.关闭底层的文件描述符
3.释放相关的堆区空间