2011-03-06 103 views
2

我需要寫一個普通的PPM文件到標準輸出。我創建了PPM文件和所有內容,但我無法弄清楚如何將它發送到標準輸出。發送一個文件到標準輸出C

你可以提供任何幫助是極大的讚賞,

+1

'write()'系統調用是你的朋友。 stdout是fd 1. – 2011-03-06 02:16:56

+1

是write()POSIX特有的嗎?我會使用fwrite()。 – Vamana 2011-03-06 02:20:45

回答

-1
fwrite(blah,size_blah,1,stdout); 
+0

那麼會是文件的名稱? – belzinga 2011-03-06 02:23:02

+0

這將是一個FILE * – atx 2011-03-06 02:23:58

+0

不,包含要寫入數據的緩衝區的名稱。 – Vamana 2011-03-06 02:24:38

2

你應該看看了以下功能:openreadwriteclose

那麼你的代碼看起來是這樣的:

#include <unistd.h> 
int fd = open("/path/to/file", O_RDONLY); 
char buf[1024]; 
int buflen; 
while((buflen = read(fd, buf, 1024)) > 0) 
{ 
    write(1, buf, buflen); 
} 
close(fd); 

請記住,這是未經測試。

+0

這樣會允許我將文件傳回另一個程序嗎? – belzinga 2011-03-06 02:47:58

+0

我不是100%肯定的,但據我所知應該。只需從stdin中讀取下一個程序即可。不應該太難找到真正的快速。 – 2011-03-06 02:57:29

+0

'stdout'是錯誤的:它需要'FILENO_STDOUT'(或'1')或函數需要'fwrite()',然後你需要4個參數,文件流是最後一個參數。使用'strlen()'假定PPM文件不包含二進制零。您應該可以從'read()'中捕獲字符數,然後用'write()'寫出很多字符。 – 2011-03-06 04:39:24

相關問題