不会返回预期的数据

时间:2015-04-18 00:59:44

标签: c

我尝试使用pread将以下文件中的数据读入细分。

enter image description here

数据的第一部分是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);

0 个答案:

没有答案