0
我正在處理重命名或刪除文件系統中的文件的程序。我使用C,它在Linux機器上運行良好,但在Windows上失敗。我使用gcc編譯器套裝。以下是它不會從我的文件系統中刪除文件的代碼。如何刪除和重命名Windows上的C文件
在此先感謝
#include<stdio.h>
int main()
{
printf("Program demonstrating file renaming and file deletion. \n");
printf("Enter file name to be deleted : ");
char fdelete[25];
fflush(stdin);
gets(fdelete);
printf("Enter file name to be renamed : ");
char frename[25];
fflush(stdin);
gets(frename);
if (remove(fdelete)!=0)
{
printf("error deleting the file.\n");
}
if(rename("test2.txt",frename)!=0) //test2.txt is the original file
{
printf("eeror renaming the file.\n");
}
return 0;
}
我感到一個尷尬的衝動,利用您的程序中的緩衝區溢出漏洞獲得對您的計算機的根訪問權限。換句話說,'gets(fdelete);' - >'fgets(fdelete,sizeof(fdelete),stdin);'。另外,不要命名你的變量'fdelete'。它看起來像是一個理論上的C stdlib函數,它刪除了一個'FILE *'。將它命名爲「buf」(它是一個緩衝區)。 – 2013-06-22 20:49:40
您是否嘗試過查看'errno'來查看失敗操作的錯誤代碼是什麼?一切都很好,並且可以說有問題,但是當你能夠說出問題的原因時,這是無用的。 '錯誤刪除文件:$ errno'類型的東西。 –
重命名文件的最佳做法可能取決於您的目標操作系統。可能想將其添加到標籤。 – jpaugh