我尝试使用pread将以下文件中的数据读入细分。
数据的第一部分是128个字节,是一个char数组。接下来的两个值是int。最终值是(void *),它是char [100]。
我已经能够使用以下代码读取除最后一个值以外的所有值,但我无法得到"你好,世界"打印出来。
int start = 0;
char segment_name[128];
ssize_t result = pread(fd, segment_name, 128, start);
start += result;
printf("segment name: %s\n", segment_name);
int seg_size = 0;
result = pread(fd, &seg_size, sizeof(int), start);
start += result;
printf("segment size: %i\n", seg_size);
int update_size = 0;
result = pread(fd, &update_size , sizeof(int), start);
start += result;
printf("update_size: %i\n", update_size );
void *segment_data = malloc(update_size);
result = pread(fd, segment_data, update_size, start);
printf("segment data: %s\n", (char *)segment_data);