[問題] memcpy 的問題?

看板C_and_CPP (C/C++)作者 (43米的深海)時間16年前 (2009/07/03 17:55), 編輯推噓3(308)
留言11則, 5人參與, 最新討論串1/4 (看更多)
我想利用V4L2的範例程式去擷取webcam的影像檔,但在擷取到一整個影像的buffer時, 可以利用memcpy這函式把buffer寫入到一個檔案裡嗎? 程式大概是像下面這樣子: FILE* fp = fopen(file_name, "w"); memcpy(fp, p, VIDEO_SIZE); fclose(fp); 因為我執行後會出現segment fault.. 謝謝各位 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 211.22.20.210

07/03 17:58, , 1F
FILE* 不是這樣用的,你的需求要用 mmap
07/03 17:58, 1F

07/03 18:18, , 2F
memcpy沒這麼做這麼複雜的事,他單純只會到fp所在位址,取4個
07/03 18:18, 2F

07/03 18:18, , 3F
Bytes認定為目的地所在的記憶體位址,然後把資料複製到該處。
07/03 18:18, 3F

07/03 18:19, , 4F
......沒辦法做這麼複雜的事...
07/03 18:19, 4F

07/03 18:31, , 5F
樓上 他寫的是VIDEO_SIZE吧?
07/03 18:31, 5F

07/03 18:34, , 6F
(其實是我沒看到VIDEO_SIZE的定義XD)
07/03 18:34, 6F

07/03 18:35, , 7F
z 是指... memcpy 對第一個參數做的事
07/03 18:35, 7F

07/03 18:41, , 8F
抱歉沒講清楚,我是指 mov ecx,dword ptr [fp] 這件事
07/03 18:41, 8F

07/03 18:41, , 9F
再把 ecx 存的值 push 到堆疊,然 memcpy 函數會去堆疊取參數
07/03 18:41, 9F

07/03 18:50, , 10F
sorry囉 以為那個4bytes是在講sizeof(fp)之類的
07/03 18:50, 10F

07/03 22:26, , 11F
我想你需要的是 fwrite
07/03 22:26, 11F
文章代碼(AID): #1AJTMcwl (C_and_CPP)
文章代碼(AID): #1AJTMcwl (C_and_CPP)