c - 如何仅使用 read(2) 和 write(2) 重写我的代码?
问题描述
我必须制作一个类似于 Linux head 命令的 C 程序。目前,我通过打印一定数量的文本文件行来实现它的基本部分。问题是它适用于 fgets() 和 fopen() 但我不允许使用它们。当我尝试将其更改为 read() 和 open() 它只打印整个文件,而不仅仅是特定的行数。
#define BUFFSIZE 10000
int main (int argc, char* argv[]) {
FILE *fp;
fp = fopen(argv[3], "r");
char buffer[BUFFSIZE];
char *input = argv[1];
//printf("%s", input);
int number = atoi(argv[2]);
int n;
while (fgets(buffer, BUFSIZE,fp) != NULL) {
printf("%s", buffer);
n++;
if (n > number-1) break;
}
}
解决方案
推荐阅读
- c++ - C++ 规则 5 和规则 0
- google-apps-script - 获取 Google 表格的视口大小?
- java - Java 代理忽略应用程序类路径
- python - 如何在 Python 中生成彼此相邻的词云
- java - Java - 无法在 Firefox 浏览器中使用 selenium 网格
- r - R中的组合蒙特卡罗模拟
- linkedin - LinkedIn V2 版本 API“没有足够的权限访问 /me GET”
- python - 抓取网页时出现不可散列的类型列表问题
- r - 如何停止将 last.dump.out 和 .rda 保存到文件
- javascript - 在 Phaser 3 中更改场景的问题