Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/71.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C语言中读取大缓冲区的高效技术_C_Linux_File Io - Fatal编程技术网

C语言中读取大缓冲区的高效技术

C语言中读取大缓冲区的高效技术,c,linux,file-io,C,Linux,File Io,我正在用C语言编程。有时,我们必须从通常使用fread或read系统调用的文件中读取大数据,这意味着流I/O或系统调用I/O 我想问,如果我们正在读取如此大的数据,然后计算块大小并根据它进行读取,它会以任何方式帮助我们高效地读取数据吗 我知道通过系统调用读取数据会使速度变慢,还有其他一些情况,比如如果我们必须处理网络套接字,那么我们应该使用它们,而不是使用基于流的I/O,这将给我们带来优化的结果。像wise一样,我需要一些技巧和技巧来读取文件中的大数据以及需要处理的事情 此外,如果mmap比这些

我正在用C语言编程。有时,我们必须从通常使用fread或read系统调用的文件中读取大数据,这意味着流I/O或系统调用I/O

我想问,如果我们正在读取如此大的数据,然后计算块大小并根据它进行读取,它会以任何方式帮助我们高效地读取数据吗

我知道通过系统调用读取数据会使速度变慢,还有其他一些情况,比如如果我们必须处理网络套接字,那么我们应该使用它们,而不是使用基于流的I/O,这将给我们带来优化的结果。像wise一样,我需要一些技巧和技巧来读取文件中的大数据以及需要处理的事情

此外,如果mmap比这些常规I/O更为有利,请详细说明它将在什么情况下发挥作用


平台:Linux,gcc编译器

我认为分块阅读总是一个好主意。对于大型文件,我们显然不希望在堆中分配大量内存。
如果文件的大小为几MB,那么我认为我们可以在一个字符缓冲区中一次性读取整个文件,并使用该缓冲区处理数据。这比一次又一次地从文件中读取要快。

我认为分块读取总是一个好主意。对于大型文件,我们显然不希望在堆中分配大量内存。 如果文件的大小为几MB,那么我认为我们可以在一个字符缓冲区中一次性读取整个文件,并使用该缓冲区处理数据。这比一次又一次地从文件中读取要快。

您考虑过使用mmap的文件吗?

您考虑过使用mmap的文件吗?

您有没有咨询过,和?您有没有咨询过,和?