Unix高级编程:库函数与系统调用函数区别、文件锁、进程基础

一、库函数和系统调用之间的关系和区别(文件操作函数说明)
fopen(3)
FILE *fopen(const char *path, const char *mode);
当使用fopen(3)打开文件的时候,发生了什么?
1)首先分配了一块内存空间,用于文件内容的缓冲
2)然后调用open(2)


fputc(3)
int fputc(int c, FILE *stream);
首先将数据放入fopen(3)开辟的那块内存空间里:
1)如果内存空间不满,不会立即写入到文件,当清理缓存的时候或者或者缓存满的时候,调用"write"(2)将缓存里的内容写到文件。
2)如果内存空间满的时候,调用write(2)将缓存里的数据写入到文件,然后将fputc的内容写到缓存里。


fgetc(3)
int fgetc(FILE *stream);
调用fgetc(fp)的时候,首先到fp指向的内存空间里去找一个字符:
1)如果空间里有字符,立即返回。
2)如果没有字符,调用"read(fp->_fileno, buf, len)",buf指向了fp的内存空间。这个
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

姜源Jerry

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值