write 函数:有没有办法只写入缓冲区的一部分?
我正在学习使用 write 函数,并尝试仅打印字符缓冲区数组的一部分。所以它看起来像这样:
char *tempChar;
char *buf;
buf=&tempChar;
read(0, buf, 10);
write(1, [???], 1);
我想过将 buf[3] 放在 [???] 所在的位置,但这不起作用。 我也考虑过使用 tempChar[3],但这也不起作用。
有什么想法吗?非常感谢。
I'm learning to use the write function and am trying to print only a part of a buffer array of chars. So it looks like this:
char *tempChar;
char *buf;
buf=&tempChar;
read(0, buf, 10);
write(1, [???], 1);
I thought about putting buf[3] where the [???] is, but that didn't work.
I also thought about using tempChar[3], but that didn't work either.
Any ideas? Thanks so much.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
您可以使用
buf + 3
。这就是指针算术。它需要 buf 并给你一个向下 3 个字符的新指针。buf[3]
相当于*(buf + 3)
。请注意不需要的取消引用。另请注意:
可能是不对的。
这会将 tempChar 变量的地址分配给 buf,这可能不是您想要的。
You would use
buf + 3
. This is pointer arithmetic. It takes buf and gives you a new pointer 3 characters down.buf[3]
is equivalent to*(buf + 3)
. Note the unwanted dereference.As another note:
is probably not right.
That assigns the address of the tempChar variable to buf, which is probably not what you want.