李慧芹-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.如何不冲突

    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/目录:

p136 2.系统调用IO-open,close

p137 3.系统调用IO-read,write,lseek及memcopy

p138 4.系统IO和标准IO比较实例

p139 5.文件共享

p140 6.dup,dup2和原子操作

p141 7.fcntl和ioctl

p142 1.文件系统介绍

posted @ 2022-09-24 09:49  simp00  阅读(137)  评论(0编辑  收藏  举报