Tag: 文件

C fputcerror handling?

fputc的大多数C文件编写示例使用一个非常基本的示例,几乎没有错误检查过程。 我应该使用哪些错误检查技术和函数与fputc循环一起确保fputc已成功写入文件? 我应该如何使用它们? 我特别要求fputc的原因是我正在使用双向链表。

将文本文件拆分为C中的单词

我有两种类型的文本,我想将它们分成单词。 第一种类型的文本文件只是由换行符分隔的单词。 Milk Work Chair … 第二种类型的文本文件是书中的文本,它只有空格。 (没有昏迷,问号等) And then she tried to run but she was stunned by the view of … 你知道哪种方法最好吗? 我尝试了以下两种方式,但似乎我正在进行分割。 对于我使用的第一种文本: while(fgets(line,sizeof(line),wordlist) != NULL) { /* Checks Words | printf(“%s”,line);*/ InsertWord(W,line);/*Function that inserts the word to a tree*/ } 对于我使用的第二种文本: while(fgets(line,sizeof(line),out) != NULL) { bp = line ; while(1) { […]

system()输出到char *

int system(const char *) 如何将此命令的输出(假设命令为“pwd”)发送到char *? 它返回一个int,但我希望将命令的结果发送到char *。

独立跨平台(Windows / Linux))C / C ++的文件压缩?

我正在寻找一个用C或C ++开发的(可以小的)开源库,我可以将它包含在我的MIT许可项目中(托管在谷歌代码上)。 我是一个爱好C / C ++程序员,所以我不是那么先进,但我知道我需要为名为“SA-MP”的应用程序开发插件(适用于Windows和Linux)。 我愿意做的是一个自动安装程序,它需要能够解压缩压缩文件(最好是.zip,但任何其他文件压缩方法都可以!)。 我已经找了这样一个库,但是他们总是需要在windows上有一些额外的dll或linux上的其他一些文件 – 这不是我要找的东西,因为最终用户可能无法知道如何安装插件用它所需的组件。 另外看一下Basic Compression Library,它似乎没有文件压缩,只是算法。 所以有了那个,我运气不好。 要使上述文字简短: 如果可以链接到我的C / C ++项目,则不允许外部依赖项,需要额外的库。 可以压缩整个目录并解压缩它们。 适用于Windows和Linux。 可以安全地与MIT许可证一起使用(可选,优先)

使用C用第二个替换文件的前半部分并截断?

所以我有一个大文件,一旦达到一定的大小,我想完全删除前半部分并将下半部分向下移动,有效地使其减小一半。 Heres是我在想的: FILE *fp, *start; int ch, block_length, filesize; char c; //open the file and initialize pointers fp = fopen(FILEPATH, “rb+”); start = fp; rewind(start); //Check the size of the file fseek(fp, 0, SEEK_END); filesize = ftell(fp); if(filesize >= LOG_MAX_FILE_SIZE) { //Go to middle of file fseek(fp, (-1) * LOG_MAX_FILE_SIZE/2, SEEK_END); //Go forwards until you […]

连续硬盘上的空间 – NTFS

我的问题是关于NTFS Fs上的文件分配方法。 我有两个主要问题 – 当我在NTFS上创建文件时,它是否连续存储在物理硬盘上? 如果没有 – 是否有办法创建一个文件,当我写入它时,数据是连续存储的(在硬盘上)? 类似于数据库中的区域。 如果存在这样的文件 – 是否有任何方法可以从串/块中读取数据(使用C读取系统调用)。 我可以使用的最大束大小是多少。 我正在尝试为小型应用程序创建一个简单的基于文件的数据库,并希望在文件中创建我的数据库。 出于性能原因,我需要在磁盘上以连续的顺序保存我的数据并以串行方式读取它。 (我打算在我的应用程序中mmap这个文件)。

fwprintf省略了广泛的字符

我正在尝试使用Windows上的MinGW C创建宽字符文件,但似乎省略了宽字符。 我的代码: const wchar_t* str = L”příšerně žluťoučký kůň úpěl ďábelské ódy”; FILE* fd = fopen(“file.txt”,”w”); // FILE* fd = _wfopen(L”demo.txgs”,L”w”); // attempt to open wide file doesn’t help fwide(fd,1); // attempt to force wide mode, doesn’t help fwprintf(fd,L”%ls”,str); // fputws(p,fd); // stops output after writing “p” (1B file size) fclose(fd); 文件内容 píern luouký […]

linux&c – 在磁盘上访问文件..按地址?

是否可以通过ac程序或终端(linux)中的地址获取文件? 我知道这对我来说听起来很奇怪,但我只是在尝试。 例如,替换 FILE * f = fopen(“myfile.txt”,”r”) 通过绝对令人惊叹的东西 int fd = open(&0x545f6f5,”r”) 或echo&0x545f6f5会抓住相关文件的一部分(需要一个长度,所以更像echo和0x545f6f5 20来读取地址旁边的20个字节)? 我知道mmap,但同样,我的问题更像是实验。 那么,整体情况是:可以使用地址(理想情况下长度)访问linux文件系统上文件的任何部分吗? 更新: 说我的分区ID / dev / sda1,我想访问带有地址而不是名称的原始内存值(可读或不可读)。 如果我寻找地址&0x545f6f5并且恰好是偏移量为64的myfile.txt,我会读取此位置的字节。 我希望它能让它更清晰:)

为什么fread()停在一个0的字符串?

我正在尝试使用以下二进制配置读取二进制文件 00 00 00 1A 79 20 83 DB 44 … 使用以下function static BitArray getBitArray(string filename) { FILE *fs = fopen(filename.data(),”r”); fseek (fs , 0 , SEEK_END); unsigned long s = ftell (fs); rewind (fs); unsigned char *buffer = new unsigned char[s+1]; fread(buffer,1,s,fs); BitArray bArray; for(int i=0; i<s; i++) bArray.add(buffer[i]); delete[] buffer; fclose(fs); return bArray; […]

在C中复制每个块的文件块

我正在尝试将文件划分为大小为y(以字节为单位)的x块,以便我可以单独复制每个块。 我怎样才能做到这一点?