char *fgets(char *str, int n, FILE *stream)
我知道这两个有很大的不同。 fgets适用于FILE *,read适用于文件描述符。 fgets读取直到换行,read读取您告诉了多少。是否可以实现fget,或查看fget的系统代码?
答案 0 :(得分:2)
fgets
只能在stdio缓冲之上有效地实现;否则,由于没有read
的基础变体在第一行换行处停止,因此您将不得不以请求的长度1重复调用read
。
如果您有兴趣阅读某些实现的源代码,请参见glibc:
这是musl的: