【发布时间】:2014-05-22 15:33:23
【问题描述】:
编辑:感谢大家的快速回答。 :)
好的,我是 C 的新手,我可以打开一个文件并将其设置到文件中的某个位置,并使用以下代码读取一大块数据并将其写入另一个文件:
#include <stdio.h>
int main (int argc, unsigned char *argv[])
{
FILE* in = fopen(argv[1], "rb");
FILE* out = fopen("test.bin", "wb");
unsigned char buffer[0x200];
fseek(in, 0x8F00, SEEK_SET);
fread(buffer, sizeof(buffer), 1, in);
fwrite(buffer, sizeof(buffer), 1, out);
};
但是我有点精通 perl,我可以轻松地查找文件中的任何位置并读取如下数据块:
seek ( $file, 0x8F00, 0);
read ( $file, $buffer, 0x200);
如您所见,我不必在 perl 中预先声明我的缓冲区大小,我可以在读取函数本身中指定缓冲区。有没有我可以在 C 中使用缓冲区而不必像在 perl 中那样预先声明它?
【问题讨论】:
-
C 中所有使用的变量都必须声明和定义。
-
想一想——perl 是用 C 编写的
-
我知道并且我经常使用 perl,我选择迁移到 C 是因为我想做的 /now/ 需要 C 编程,但是是的,perl 非常快,而且编程也很快:)