[英]c - How to delete specific strings/files in a file?
我现在已经熟悉C,并且在删除另一个文件(系统)中的特定文件或字符串时遇到了一些问题。
我实质上要做的是构建一个虚拟文件系统,您可以在其中添加文件,搜索或删除它们。
我似乎无法使最后一部分正常工作,并且google没有给我任何可用的结果(“如何在c中删除文件”)。
我到目前为止所得到的:
void deleteFILE(){
FILE *f = fopen ("myfilesystem.nfo", "r+");
if(f == 0) {
perror("DANGER");
return;
}
char *del;
printf (" You deleted the file: %s", del);
}
如果有人可以帮助我或为我指明正确的方向,那将很棒。
您正在询问如何从文件中删除内容。 有两种情况:
如果您希望从文件中的某个点删除内容直到最后,如果您使用的是POSIX系统,则可以使用truncate
或ftruncate
。 非POSIX系统具有类似的功能来执行此任务,但据我所知,C标准库中没有任何东西可以截断文件。
如果要从文件的中间删除内容,则需要将已删除部分之后的文件内容复制到已删除部分的顶部。 然后,您需要将文件截断为新长度。
作为使该文件清晰的示例:
Pos: 0123456789 File content: abcdefghij
假设您希望删除字节7-9,hij。 然后,您只需将文件的长度截短为7。这就是上面的方案1。
如果您希望删除字节2-6,即cdefg,则可以执行以下操作:
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.