gpt4 book ai didi

c - 低级读取文件

转载 作者:行者123 更新时间:2023-11-30 21:26:33 26 4
gpt4 key购买 nike

#include <fcntl.h> 
#include <stdio.h>
#include <string.h>
#include <sys/stat.h>
#include <sys/types.h>
#include <unistd.h>

int main (int argc, char* argv[])

{

char* filename = argv[1];

/* Open the file for writing. If it exists, append to it;

otherwise, create a new file. */

int fd = open (filename, O_RDONLY | O_CREAT | O_APPEND, 0666);

// Reading file probleme

close (fd);

return 0;

}

我的问题是我无法真正找到如何读取缓冲区。我的文件中只有整数,但如何从它读取到该缓冲区?我找不到实现这一目标的函数。

最佳答案

您正在寻找的功能称为“read”。但是,您必须向其传递之前已经分配的缓冲区。像这样的东西应该有效:

if (fd) {
char buffer[1024];
int n = read(fd, buffer, 1024);

/* ... */
}

调用之后,n 将包含从 fd 读取的字节数(如果没有,则为 0,如果发生错误则小于 0)。

如果该文件中有原始整数,则可以像这样访问它们:

int *ibuffer = (int*)buffer;

ibuffer 是一个长度为 1024/sizeof(int) 的整数数组,包含 fd 中的前 n/sizeof(int) 个连续整数。严格来说,这不是完全合法的 C,但我最近还没有看到任何架构无法实现此功能。

关于c - 低级读取文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14343971/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com