簡體   English   中英

如何在函數C中以null終止的字符串中傳遞雙精度數?

[英]How can I pass a double into a function which takes a null terminated character string in C?

我有一個double ,需要將其傳遞給c中的write系統調用。

寫函數原型是size_t write(int fildes, const void *buf, size_t nbytes); 並且需要將double用作buf參數。 文檔說buf

要寫入的內容的空終止字符串。

我試圖像這樣將其轉換為char指針

double my_double = 4.5789; 
char * buf = (char *)&my_double;

但是我不知道如何在此末尾添加空字符。

如何格式化此雙精度碼以輸入write功能?

編輯:自從我問這個問題以來,我相信有人更新了我鏈接的文檔。

write()的文檔可能無法說buf是一個以null結尾的字符串。 您必須查看錯誤的文檔。 buf是一個指向無類型緩沖區的指針,該緩沖區沒有任何終止,其長度由nbytes指定。 那么,您想告訴我們您在哪里找到該文檔嗎?

同時,我建議您忽略該文檔,並執行以下操作:

size_t n = write( yourfile, &my_double, sizeof(my_double) );
ASSERT( n == sizeof(my_double) );

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM