![](/img/trans.png)
[英]How can I use Java Native Interface to pass a byte array into a C function which takes a char* as an argument?
[英]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.