【发布时间】:2014-10-25 18:00:56
【问题描述】:
我想知道我们是否可以使用多个线程在同一个文件上写入二进制数据。
FILE *fd = openfile("test");
int SIZE = 1000000000;
int * table = malloc(sizeof(int) * SIZE);
// .. filling the table
fwrite(table, sizeof(*table), SIZE, fd);
所以我想知道我是否可以使用线程,并且每个线程都会调用 fssek 来寻找不同的位置以写入同一个文件。
有什么想法吗?
【问题讨论】:
-
阅读
fwrite()的文档以了解它是否是线程安全的。如果没有,您将需要实现自己的互斥锁来保护它。 -
int * table = sizeof(sizeof(int) * SIZE);这里似乎遗漏了什么。
标签: c multithreading