我正在嘗試pwrite
一些數據在一個文件的某個偏移量與給定的文件描述符。我的數據存儲在兩個向量中。一個包含unsigned long
s和另一個包含char
s。如何從無符號長整型轉換爲void *?
我想建立一個void *
指向代表我unsigned long
S和char
S中的比特序列,並將其與累計大小一起傳遞給pwrite
。但我怎樣才能投unsigned long
到void*
? (我想我可以找出字符)。這裏是我想要做的事:
void writeBlock(int fd, int blockSize, unsigned long offset){
void* buf = malloc(blockSize);
// here I should be trying to build buf out of vul and vc
// where vul and vc are my unsigned long and char vectors, respectively.
pwrite(fd, buf, blockSize, offset);
free(buf);
}
而且,如果你認爲我的上述思想不好,我會很樂意閱讀的建議。
凡真實downvoting答案會很好地解釋了爲什麼他們downvoting。 –
-1s是怎麼回事? +1 – TravisG
感謝您的回覆。對我來說唯一的問題是如何構建我的buf,因爲我需要一些unsinged的long和chars並且關心效率,所以我寧願構建我的buf,然後將它傳遞給pwrite以最大限度地減少I/O。 – Pirooz