[英]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.