buf可以是int*吧?
时间: 2023-12-24 07:05:57 浏览: 25
是的,`buf`可以是`int*`类型的指针。在使用`write`函数时,可以将`int*`类型的指针作为`buf`参数传入,但需要注意数据的大小和字节数。
例如,如果要将一个整数数组写入文件描述符,可以这样使用`write`函数:
```c
#include <unistd.h>
int main() {
int numbers[] = {1, 2, 3, 4, 5};
int fd = open("file.txt", O_WRONLY | O_CREAT, 0644);
if (fd != -1) {
size_t num_bytes = sizeof(numbers); // 计算数组的字节数
ssize_t bytes_written = write(fd, numbers, num_bytes);
if (bytes_written == -1) {
printf("写入文件出错\n");
} else {
printf("成功写入 %ld 字节\n", bytes_written);
}
close(fd);
} else {
printf("无法打开文件\n");
}
return 0;
}
```
请注意,`write`函数将按字节写入数据,因此需要确保传递正确的字节数。在上述示例中,我们使用`sizeof`运算符计算数组的字节数,并将其作为参数传递给`write`函数。
希望能解答您的问题!如果还有其他疑问,请随时提出。