我试图用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