我有一些麻烦读取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