如何将 double 传递给在 C 中采用空终止字符串的函数?
How can I pass a double into a function which takes a null terminated character string in C?
我有一个 double
,我需要将它传递到 c 中的 write 系统调用中。
write函数原型为size_t write(int fildes, const void *buf, size_t nbytes);
,double需要作为buf
参数传递。文档说 buf
是
A null terminated character string of the content to write.
我试过像这样将其转换为 char
指针
double my_double = 4.5789;
char * buf = (char *)&my_double;
但是我不知道如何在这个末尾添加空字符。
如何格式化此双精度值以输入 write
函数?
编辑:自从我提出这个问题后,我相信有人已经更新了我链接到的文档。
write()
的文档不可能说 buf
是一个以空字符结尾的字符串。您一定是看错了文档。 buf
是指向无类型缓冲区的指针,它没有任何终止,其长度由 nbytes
指定。那么,您想告诉我们您在哪里找到该文档吗?
与此同时,我建议您忽略该文档,并执行以下应该有效的操作:
size_t n = write( yourfile, &my_double, sizeof(my_double) );
ASSERT( n == sizeof(my_double) );
我有一个 double
,我需要将它传递到 c 中的 write 系统调用中。
write函数原型为size_t write(int fildes, const void *buf, size_t nbytes);
,double需要作为buf
参数传递。文档说 buf
是
A null terminated character string of the content to write.
我试过像这样将其转换为 char
指针
double my_double = 4.5789;
char * buf = (char *)&my_double;
但是我不知道如何在这个末尾添加空字符。
如何格式化此双精度值以输入 write
函数?
编辑:自从我提出这个问题后,我相信有人已经更新了我链接到的文档。
write()
的文档不可能说 buf
是一个以空字符结尾的字符串。您一定是看错了文档。 buf
是指向无类型缓冲区的指针,它没有任何终止,其长度由 nbytes
指定。那么,您想告诉我们您在哪里找到该文档吗?
与此同时,我建议您忽略该文档,并执行以下应该有效的操作:
size_t n = write( yourfile, &my_double, sizeof(my_double) );
ASSERT( n == sizeof(my_double) );