王老师 day2
系统调用:
系统提供:1给(OS API LIBC 中间键)使用 2 给APP使用(常用的调用 20个)
C函数
C语言标准函数库
printf scanf fopen fclose fgets,fputc,fgets,fputs (txt)
fread,fwrite (二进制文件)
string.h strlen strcpy strncpy strcat strncat(拼接) strcasecmp strncasecmp strstr()
char* p=“hello world”;
char* q=“ll”;
strstr(p,q);返回位置指针 NULL
memcmp()无符号整形比较
stdlib.h
malloc calloc free srand rand
math.h
sprt pow
操作系统提供的函数—系统调用 POSIX
自定义函数
第三方函数 (专注)值
接口头文件 实现库
调用按功能分:
进程控制
文件系统控制(open read write close)
系统控制
内存管理
网络管理(升级)
用户管理(shell命令:命令行(内部命令 外部命令type cd):)
进程间通信
uinx
SystemV
BSD系列
类linux系列 Linux Minix
文件:
普通文件 -普通文件 d目录文件l 链接文件 c(char) b(bloc)设备文件 字符设备(键盘) 块设备(硬盘)s套节字(本地soket文件网络文件) 管道文件
change denmkry touch(改变时间 最后一次修改事件) 目录可执行
文件 1 文本文件 2 二进制文件
目录文件 管理组织文件 文件(文件名 文件信息 元信息)文件系统组织存放的文件信息 格式化指定文件系统
链接文件 为一个文件起别名
设备文件 块设备(分区功 )
ext4 (说明书)元信息只有一个 stat(查看元信息) inode 文件系统
相关系统函数列表: 1 shell 2 系统调用 3 c标准库函数
fd 信息描述符 int stat()//1 返回整形数 2 0-255 man()返回0正常1 3
1函数的功能理解(干什么 需要什么 结果如何 )
指针类型func(int arr[])//可以不写数据
n维数组实际都是一维数组,该一维数组中的元素是n-1维数组
数组名型参等价与指向元素的指针
数组定义语句的数组名是指向下表为0 的元素的常量指针
指向数组的指针交织针
全局数据区 static
执行语句 int x;
类型指针型参可分为为:
1 值参数 const char* s 指向空间不可变 只读指向空间的内容
2 结果参数 只写
3 值。结果参数 即读又写;
系统调用
位置指示器 lseek fd 文件别名
T* p=NULL;
p=(T*)malloc(size);
if(NULL)
{
…
}
free§;
p=NULL;
O_RDONLY
O_
C库的全局变量 对应的
FILE* stdin; //键盘
FILE* stdout;//
FILE* stderr;//标准错误
size_t read(int filds,void* buf,size_t nbytes);
size_t write(int fileds,void * buf,size-t nbytes);
文件系统是明确文件的方法和数据结构
FAT NTFS Ext4
typedef struct iobuff{
int cnt; //剩余字节数
char *ptr; //下一个字符的位置
char *base;//缓冲区的位置
int flag; //访问模式
int fd; //文件描述符
}FILE
open 的操作方式: O_RDONLY O_WRONLY O_RDWR O_APPEND O_CREAT O_TRUNC(丢弃原有内容) O_EXCL
off_t lseek (int fildes,off_t offset,int whence) SEEK_SET SEEK_CUR SEEK_END;
O_NONBLOCK
mmap()用来将某个文件内容映射到内存中,对该内存区域的存储既是直接对该文件内容的读写。