我試圖用c將一個windows目錄的內容寫入文件。舉例來說,如果我有JPEG文件的目錄(即包含多個JPEG文件的目錄),並希望將其轉換爲一個.raw文件,我有這樣的事情:打開一個Windows文件目錄在c中讀取/寫入
#include <stdio.h>
#include <sys/stat.h>
#include <unistd.h>
#include <stdlib.h>
typedef uint8_t BYTE;
#define BLOCK 512*sizeof(BYTE);
int main(void)
{
FILE * fd = fopen("C:\\jpegs", "r");
if (fd == NULL) {
fprintf(stderr, "Error opening device file.\n");
return EXIT_FAILURE;
}
int block = BLOCK;
FILE * fn = fopen("new.raw", "w+");
void * buff = malloc(block);
while(feof(fd) == 0) {
fread(buff,block,1,fd);
fwrite(buff,block,1,fn);
}
free(buff);
fclose(fd);
fclose(fn);
return 0;
}
的問題是我不知道認爲Windows目錄以EOF終止。有沒有人有關於如何解決這個問題的任何想法?
什麼是_「windows文件目錄」_?什麼是'jpegs',它是一個文件,還是一個目錄? _「或者更一般地說,Windows如何在內存中分割其目錄和/或硬盤驅動器?」_ - 我現在正在撓頭......對你而言,直接的問題是:你真的知道_memory_和_partition_實際上是什麼詞意思?我在問,因爲他們與你的問題無關。 –
這是一個目錄。對於令人困惑的語言感到抱歉。哎呀,快速寫下來,沒有想到我想問什麼。我想我想問的是,Windows目錄是如何在內存中彼此區分的。或者換句話說,當我在目錄上使用fopen時,fread讀取的內容究竟是什麼? – mrizzo
因爲,當我運行這個腳本時,它只是繼續運行並且不斷向new.raw寫入比在jpegs目錄中更多的字節。 – mrizzo