如何将 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) );