[英]read textfile with file descriptor in to a pipe
我在這里嘗試讀取fileDesc的內容, 它是一個指向文本文件的文件描述符,該文本描述符當時是一個管道* pipe_d [1] *的一個字符。 這確實可以正確打印文件中的字符,但是我相信我的write()嘗試將字符的內存地址寫入管道,而不是如果我這樣做,則不將該字符寫入內存。
char x;
FILE *file;
file = fdopen(fileDesc, "a+");
while((x = fgetc(file)) != EOF)
{
printf("%c", x);
write(pipe_d[1], &x, sizeof(x));
}
我想獲得位於&x上的字符,而不是將其寫入管道。 有什么想法嗎?
先感謝您!
x有一個問題:它是一個字符,不能包含值EOF,因此該行:
while((x = fgetc(file)) != EOF)
將始終評估為true,從而使程序永遠運行。 將x聲明為int
解決此問題。
如果希望按字符進行工作,則還應該fdopen(pipe_d[1], "w")
並使用fputc(fp, x)
編寫管道。
在編寫本文時,沒有調用pipe(pipe_d)
; 你發行了嗎?
沒有對fork()
調用,因此管道的讀取器是否存在? 如果否,則管道填滿后程序將阻塞。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.