[英]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.