如何使用底层I / O实现fget?

时间:2018-10-15 14:53:58

标签: c unix io architecture operating-system

char *fgets(char *str, int n, FILE *stream)

我知道这两个有很大的不同。 fgets适用于FILE *,read适用于文件描述符。 fgets读取直到换行,read读取您告诉了多少。是否可以实现fget,或查看fget的系统代码?

1 个答案:

答案 0 :(得分:2)

fgets只能在stdio缓冲之上有效地实现;否则,由于没有read的基础变体在第一行换行处停止,因此您将不得不以请求的长度1重复调用read

如果您有兴趣阅读某些实现的源代码,请参见glibc:

这是musl的: