李慧芹-Linux C视频教程 部分
Makefile
OBJS=main.o tool1.o tool2.o
CC=gcc
CFLAGS+=-c -Wall -g
mytool:$(OBJS)
$(CC) $^ -o $@
%.o:%.c
$(CC) $^ $(CFLAGS) -o $@
clean:
$(RM) *.o mytool -r
$(OBJS) 变量替换
$^ 上一行依赖
$@ 上一行target
%.o:%.c 这里的%就是匹配
p134 标准IO 临时文件
临时文件 :
-
1.如何不冲突
-
- 及时销毁
-
tmpname()
-
tmpfile() 匿名文件 就算是忘记了fclose 在程序正常退出的时候会被释放 算是可控的泄露
p135 1.系统调用IO-文件描述符实现原理
fd(文件描述符)是在文件IO中贯穿始终的类型 ,
当函数的返回类型为指针的时候 这个指针的位置是
栈 特点
静态区 特点
堆 特点
文件描述符的概念
(实质是一个整型的数,数组的下标,文件描述符优先使用当前可用范围内最小的)
FILE
stdio 使用fopen()打开的----->依赖open()实现
文件IO操作
open close read write lseek
标准IO的实现是依赖于系统调用IO来实现的
fopen---->open
fseek--->lseek
....
IO的效率问题
将文件IO与标准IO的区别
文件共享问题
原子操作
程序中的重定向的实现 dup dup2
同步:sync ,fsync , fdatasync
管家级别的函数 fcntl ioctl :跟设备进行交互的时候常会用到
/dev/fd/目录: