[問題] 請問c語言能複製圖檔嗎???

看板C_and_CPP (C/C++)作者 (千里之外)時間14年前 (2011/10/12 20:33), 編輯推噓1(108)
留言9則, 3人參與, 最新討論串1/1
開發平台(Platform): (Ex: VC++, GCC, Linux, ...) dev-c 額外使用到的函數庫(Library Used): (Ex: OpenGL, ...) 問題(Question): 最近在學習檔案處理這一個單元.... 在處理純文字檔或是二進位檔的存取都不是問題.... 以Java來說可以用串流的的方式來存取圖檔..... 那麼c語言是怎麼存取呢?? 資料該由什麼型態的變數來存取呢??? 我試過char buffer[] 不行!.. 請大家多多指教... 餵入的資料(Input): #include <stdio.h> #include <stdlib.h> #include <fcntl.h> #include <io.h> #include <sys/stat.h> #define SIZE 512 int main(void){ int fi, fo , bytes; char buffer[SIZE]; fi = open("c:\\java\\lena.jpg",O_WRONLY| O_BINARY, S_IREAD); fo = open("c:\\java\\new_jpg",O_CREAT|O_BINARY, S_IREAD); if((fi!=-1) &&(fo!=-2)){ while(!eof(fi)){ bytes = read(fi,buffer,SIZE); write(fo,buffer,bytes); } printf("檔案複製成功!!\n"); close(fi); close(fo); } else printf("檔案開啟失敗!!\n"); system("pause"); return 0; } 預期的正確結果(Expected Output): 錯誤結果(Wrong Output): 程式碼(Code):(請善用置底文網頁, 記得排版) 補充說明(Supplement): -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 114.41.136.224

10/12 20:38, , 1F
答案是可以的,你可以把你寫的程式碼放上來看看
10/12 20:38, 1F
※ 編輯: spiderman007 來自: 114.41.136.224 (10/12 22:37)

10/12 23:02, , 2F
有 f~ 系列的function call,可以參考看看
10/12 23:02, 2F

10/12 23:03, , 3F
有必要走這麼底層嗎...
10/12 23:03, 3F

10/12 23:06, , 4F
我可以跟你講就算是用char buffer[] 也是有辦法複製的
10/12 23:06, 4F

10/12 23:51, , 5F
while(!(bytes = read(fi,buffer,SIZE))) {
10/12 23:51, 5F

10/12 23:52, , 6F
write(fo,buffer,bytes);if (bytes != SIZE)break; }
10/12 23:52, 6F

10/12 23:54, , 7F
而且fo 的permission 也不會是S_IREAD...
10/12 23:54, 7F

10/12 23:57, , 8F
要嘛也是S_IWRITE...
10/12 23:57, 8F

10/13 00:01, , 9F
open的error return value 是-1
10/13 00:01, 9F
文章代碼(AID): #1EbOabdR (C_and_CPP)
文章代碼(AID): #1EbOabdR (C_and_CPP)