我有一些麻煩讀取JPG文件,並保存它。我想實現一個客戶端和服務器之間的文件共享系統,我甚至無法讀取JPG並將其保存在同一個進程中。以下是我迄今爲止C:如何從文件中讀取JPG格式和保存呢?
int main(int argc, const char * argv[])
{
char *buffer;
FILE *picture;
FILE *newPicture;
struct stat st;
long fileSize = 0;
picture = fopen("PATH/root/game-of-thrones-poster.jpg", "rb");
fstat(picture, &st);
fileSize = st.st_size;
if(fileSize > 0) {
buffer = malloc(fileSize);
if(read(picture, buffer, fileSize) < 0) {
printf("Error reading file");
}
fclose(picture);
newPicture = fopen("PATH/root/new.jpg", "wb");
write(newPicture, buffer, fileSize);
}
free(buffer);
}
當它試圖讀取該文件,它告訴我,檔案大小爲0
如果'fopen'返回NULL,你應該用'perror'(或使用'字符串錯誤(錯誤)')'顯示或許errno';你也應該用'-Wall'編譯,因爲你fstat'的'使用是錯誤的(應該是'FSTAT(的fileno(圖片),ST)'和你最好叫'memset的(ST,0的sizeof(ST))'之前....);順便說一句,爲什麼使用'read'而不是'fread'? – 2013-05-04 06:38:19
其實,你的代碼可能不會編譯。 – 2013-05-04 06:42:24
我的代碼不會編譯 – user2158382 2013-05-04 06:45:14