【发布时间】:2014-10-10 19:29:26
【问题描述】:
上下文:
我正在尝试读取一个文件,并找出我正在阅读的部分中的哪个字符。对于这部分程序的总体方案,我使用的是 pthreads 和 fread()。
现在,我的代码如下所示:
excess=( fread( thread_data[i].buffer, 1, 30, f ) );
printf("\n\nSegFault 1 \n\n%s\n\n\n", thread_data[i].buffer);
printf("\n\nSegFault 2 n\n%s\n\n\n", &thread_data[i].buffer[10]);
为了将所有内容放在上下文中,第一条语句是打印整个缓冲区,包括剩余的垃圾,我还没有设置空终止符。
然后,我们调用第二个 printf,我将获取从缓冲区中的第 10 个字符到缓冲区的最后一个字符的所有内容。例如:
frist printf: 1234567890 abcdefgh
second printf: abcdefgh
问题:
如何索引缓冲区以便我可以检索单个字符来玩?如果我们看上面的例子,当我调用时:
&thread_data[i].buffer[10]
我期待返回' ',也就是一个空格
【问题讨论】:
-
这与
fread()无关。或者使用 pthreads。