簡體   English   中英

fwrite pid_t不起作用

[英]fwrite a pid_t not working

我有以下代碼:

...
printf("Started %d", pid);
FILE * fh;
fh = fopen("run/source.pid", "wb");
fwrite(&pid, sizeof(int), 1, fh);
fclose(fh);

但是寫的pid文件寫的是行話,而不是整數,盡管pid_t只是一個int ,我甚至為第二個參數綁定了sizeof(pid_t) ,但我遇到了類似的問題。

有任何想法嗎? 我在這里先向您的幫助表示感謝。

謝謝

我對這個問題不太了解(上下文太少),但是問題可能是您在文本編輯器,終端等中看到文件。

fwrite()寫入原始數據,例如,假設您有一個pid編號,比方說12,然后使用fwrite編寫該編號,如下所示:

fwrite(&pid, sizeof(int), 1, file);

fwrite()會將32位整數寫入文件file ,即,根據您的處理器類型,字節序列如下: 00 00 00 12

然而

fprintf()將寫入以下字節序列: 49 50 (獨立於平台的ASCII字符),在所有終端或文本編輯器中可見。

希望這可以幫助。

暫無
暫無

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

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