0

jpg ファイルの読み取りと保存に問題があります。クライアントとサーバーの間でファイル共有システムを実装したいのですが、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);
}

ファイルを読み取ろうとすると、fileSize が 0 であることがわかります。

4

1 に答える 1

3

fstat() は、stat されるファイルがファイル記述子 fd によって指定されることを除いて、stat() と同じです。

あなたは合格FILE *していますfstatint

于 2013-05-04T06:41:07.873 に答える