1. c语言 编写并运行了程序 产生的那些文件可以直接删除吗
当然可以了,c语言一般分为
.c 源文件 ,,存储你写的源代码
编译链接时一般会产生 .o 与 .exe
.o 就是object, 也就相当于windows下编译的obj文件, 俗称目标文件.
如在linux(UNIX) 下有这个文件就可以直接运行了
.exe windows下的可执行文件。
还有就是你进行文件操作的时候你自己利用操作文件的一些库函数生成的文件,这个随意,想删就删
2. c语言怎样删除文件
首先要说明的是这里并不是指删除C编译器里面的文件,呵呵,如果只是要删除那些文件的话,那就很简单,直接选中文件后按delete键就可以删除了,但是我们删除那些文件干嘛?我们还要用它写程序啊,呵呵。我在这里要说的是,怎样使用C语言编写程序来删除文件。
在C语言中,我们可以使用remove()函数来删除指定的文件,具体语法为:
Int remove(char *filename);其中filename是一个指向字符串的指针,该字符串可以组成有效的文件名,也可以包含路径说明。如果我们要删除D盘下的ABC.txt文件,我们就可以这样写:remove(“D:\ABC.txt”);
3. 什么代码可以让C语言运行的文件删除自身
用不同的文件指针就可以在一个程序中同时打开两个文件。
打开两个窗口这属于多线程编程范围,请参考相关教材。
4. c语言程序运行完后 还占用内存空间么怎么删
程序运行完之后,即使内存没有在程序中被正确释放也会被操作系统回收的。
当然了,不释放动态内存是一种不好的习惯,当你的程序变大时副作用就会很明显。
5. c语言怎么关闭正在运行的应用程序
可以通过system 函数,调用dos命令taskkill实现关闭正在运行的应用程序。
如
system("taskkill /im notepad.exe");
会关闭记事本应用。
system("taskkill \F /pid 1234 \T");
会强制结束pid为1234的进程及其子进程。
关于taskkill的详细描述如下:
TASKKILL [/S system [/U username [/P [password]]]] { [/FI filter] [/PID processid | /IM imagename] } [/F] [/T]
参数列表:
/S system 指定要连接到的远程系统。
/U [domain\]user 指定应该在哪个用户上下文
执行这个命令。
/P [password] 为提供的用户上下文指定密码。如果忽略,提示输入。
/F 指定要强行终止的进程。
/FI filter 指定筛选进或筛选出查询的的任务。
/PID process id 指定要终止的进程的PID。
/IM image name 指定要终止的进程的图像名。通配符 '*'可用来指定所有图像名。
/T Tree kill: 终止指定的进程和任何由此启动的子进程。
/? 显示帮助/用法。
筛选器:
筛选器名 有效运算符 有效值
----------- --------------- --------------
STATUS eq, ne 运行 | 没有响应
IMAGENAME eq, ne 图像名
PID eq, ne, gt, lt, ge, le PID 值
SESSION eq, ne, gt, lt, ge, le 会话编号
CPUTIME eq, ne, gt, lt, ge, le CPU 时间,格式为
hh:mm:ss。
hh - 时,
mm - 钟,ss - 秒
MEMUSAGE eq, ne, gt, lt, ge, le 内存使用,单位为 KB
USERNAME eq, ne 用户名,格式为
[domain\]user
MODULES eq, ne DLL 名
SERVICES eq, ne 服务名
WINDOWTITLE eq, ne 窗口标题
注意: 只有带有筛选器的情况下,才能跟 /IM 切换使用通配符 '*'。
注意: 远程进程总是要强行终止,
不管是否指定了 /F 选项。
6. 请问如何用c语言,在注册表里删除一个开机运行程序.
调用注册表操作API,可以在
HKEY_CURRENT_USER\Software\Microsoft\WindowsNT\CurrentVersion\Windows\load
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\WindowsNT\CurrentVersion\Winlogon\Userinit
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer\Run
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\Explorer\Run
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\RunServicesOnce
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\RunServicesOnce
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\RunServices
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\RunServices
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\RunOnce\Setup
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce\Setup
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\RunOnce
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run
以上是自动运行程序注册的位置,都有自动运行程序的功能,也有不同之处,具体看msdn吧,下面是操作注册表的API:
1、RegCloseKey()
原型:RegCloseKey(HKEY hKey)
解释:关闭指定的主册表键,释放句柄。当对一个或多个键或值操作完成以后,需要关闭其键来进行保存操作结果,关闭一个键后,句柄变为非法,此时应释放句柄。
2、RegCreateKeyEx()
原型:LONG RegCreateKeyEx( HKEY hKey, LPCTSTR lpSubKey, DWORD Reserved,
LPTSTR lpClass, DWORD dwOptions, REGSAM samDesired, LPSECURITY_ATTRIBUTES lpSecurityAttributes,
PHKEY phkResult, LPDWORD lpdwDisposition );
解释:打开指定的键或子键。如果要打开的键不存在的话,本函数会试图建立它。提供该函数是为了向后兼容。所有的WIN32应用程序应使用函数RegCreateKeyEx()。各参数及返回值的含义如下:
各参数及返回值的含义如下:
·hKey为主键值,可以取下面的一些数值:HKEY_CLASSES_ROOT、HKEY_CURRENT_CONFIG、 HKEY_CURRENT_USER、HKEY_LOCAL_MACHINE、HKEY_USER、HKEY_PERFORMANCE_DATA(WINNT操作系统)、HKEY_DYN_DATA(WIN9X操作系统);
·参数lpSubKey为一个指向以零结尾的字符串的指针,其中包含将要创建或打开的子键的名称。子键不可以用反斜线(\)开始。该参数可以为NULL;
·参数Reserved为保留值,必须设置为0;
·参数lpClass为一个指向包含键类型的字符串。如果该键已经存在,则忽略该参数;
·参数dwOptions为新创建的键设置一定的属性。可以取下面的一些数值: REG_OPTION_NON_VOLATILE ,表示新创建的键为一个非短暂性的键(数据信息保存在文件中,当系统重新启动时,数据信息恢复);REG_OPTION_VOLATILE,表示新创建的键为一个短暂性的键(数据信息保存在内存中),Windows95忽略该数值;REG_OPTION_BACKUP_RESTORE 仅在WINNT中支持,可以提供优先级支持;
·参数samDesired用来设置对键访问的权限,可以取下面的一些数值:KEY_CREATE_LINK,表示准许生成符号键;KEY_CREATE_SUB_KEY 表示准许生成子键;KEY_ENUMERATE_SUB_KEYS 表示准许生成枚举子键;KEY_EXECUTE 表示准许进行读操作;KEY_NOTIFY表示准许更换通告; KEY_QUERY_VALUE 表示准许查询子键;KEY_ALL_ACCESS 提供完全访问,是上面数值的组合;
KEY_READ 是下面数值的组合:KEY_QUERY_VALUE、KEY_ENUMERATE_SUB_KEYS、KEY_NOTIFY; KEY_SET_VALUE 表示准许设置子键的数值;KEY_WRITE 是下面数值的组合:KEY_SET_VALUE、KEY_CREATE_SUB_KEY;
·参数lpSecurityAttributes为一个指向SECURITY_ATTRIBUTES结构的指针,确定返回的句柄是否被子处理过程继承。如果该参数为NULL,则句柄不可以被继承。在WINNT中,该参数可以为新创建的键增加安全的描述;
·参数phkResult为一个指向新创建或打开的键的句柄的指针;
·参数lpdwDispition指明键是被创建还是被打开的,可以是下面的一些数值: REG_CREATE_NEW_KEY 表示键先前不存在,现在被创建;REG_OPENED_EXISTING_KEY 表示键先前已存在,现在被打开。
如果该函数调用成功,则返回ERROR_SUCCESS。否则,返回值为文件WINERROR.h中定义的一个非零的错误代码,可以通过设置FORMAT_MESSAGE_FROM_SYSTEM标识调用FormatMessage()函数来获取一个对错误的总体描述。
3、RegOpenKeyEx()
原型:LONG RegOpenKeyEx(HKEY hKey, LPCTSTR lpSubKey, DWORD ulOptions,
REGSAM samDesired, PHKEY phkResult );
解释:打开一个指定的键,并返回打开键的句柄。
各参数及返回值的含义如下:
·参数hKey的含义同RegCreateKeyEx函数中的hKey参数;
·参数lpSubKey为一个指向以零结尾的字符串的指针,其中包含子键的名称,可以利用反斜线(\)分隔不同的子键名。如果字符串为空,则根据hKey参数创建一个新的句柄。在这种情况下,并不关闭先前打开的句柄;
·参数ulOption保留,通常必须设置为0;
·参数samDesired的含义同RegCreateKeyEx函数中的samDesired参数;
·参数phkResult为一个指针,用来指向打开的键的句柄。可以通过RegCloseKey函数关闭这个句柄;
·函数的返回值同RegCreateKeyEx函数的返回值。
4、 查询某一个键值:RegQueryValueEx()
原型:LONG RegQueryValueEx(HKEY hKey, LPCTSTR lpValueName, LPDWORD pReserved, LPDWORD lpType,
LPBYTE lpData, LPDWORD lpcbData );
解释:根据要查询的键的句柄,要返回的查询的数据。
各个参数及返回值的含义如下:
·参数hKey为当前的一个打开的键的句柄,具体数值同RegCreateKeyEx函数的hKey参数;
·参数lpVauleName为一个指向非空的包含查询值的名称的字符串指针;
·参数lpReserved保留,必须为NULL;
·参数lpType为一个指向数据类型的指针,数据类型为下列类型之一:REG_BINARY 二进制数据、REG_DWORD 32位整数、REG_DWORD_LITTLE_ENDIAN little-endian格式的数据,例如0X12345678以(0X78 0X56 0X34 0X12)方式保存、REG_DWORD_BIG_ENDIAN big-endian格式的数据,例如0X12345678以(0X12 0X34 0X56 0X78)方式保存、REG_EXPAND_SZ 一个包含未扩展环境变量的字符串、REG_LINK 一个Unicode类型的链接、REG_MULIT_SZ 以两个零结尾的字符串、REG_NONE 无类型数值、REG_RESOURCE_LIST 设备驱动资源列表、REG_SZ 一个以零结尾的字符串根据函数使用的字符集类型的不同而设置为Unicode或ANSI类型的字符串;
·参数lpData为一个指向保存返回值的变量的指针。如果不需要返回值,该参数可以为NULL;
·参数lpcbData为一个指向保存返回值长度的变量的指针。其中长度以字节为单位。如果数据类型为REG_SZ、REG_MULTI_SZ或REG_EXPAND_SZ,那么长度也包括结尾的零字符,只有在参数lpData为NULL时,参数lpcbData才可以为NULL;返回值同RegCreateKeyEx函数的返回值;
5、RegSetValueEx()
原型:LONG RegSetValueEx(HKEY hKey, LPCTSTR lpValueName, LPDWORD lpReserved, DWORD dwType,
const BYTE *lpData, DWORD cbData);
解释:设置注册表中的一个键值。
各个参数及返回值的含义如下:
·参数hKey的含义同RegCreateKeyEx函数中的hKey参数;
·参数lpValueName为一个指向包含值名的字符串指针;Reserved保留,通常必须设置为0;
·参数dwType确定了设置的值的类型同RegQueryValueKeyEx的lyType参数;
·参数lpData为一个指向包含数据的缓冲区的指针;
·参数cbData以字节为单位,指定数据的长度;
返回值同RegCreateKeyEx函数的返回值。
6、RegDeketeKey()
原型:LONG RegDeleteKey(HKEY hKey,LPCTSTR lpSubKEY);
解释:函数RegDeketeKey删除一个键及所有的子键。
各个参数及返回值的含义如下:
·参数hKey的含义同RegCreateKeyEx函数中的hKey参数;
·参数lpSubKey的含义同RegCreateKeyEx函数中的lpSubKey参数。
7. 如何让c语言程序运行一次后自动删除。
你想做黑客啊?做完了就把自己删除了?
我知道通过主函数的参数可以知道EXE文件名。
再用system函数调用操作系统的命令来删除这个EXE文件。
此外,还可以通过批处理来做。
具体代码你自己写,做黑客是要有点本事的。
8. 怎么删除C语言中程序运行记录
步骤如下,我用的VC英文版
File -> Close Workspace,点击“是”
File -> Open,打开需要编译的文件
Build -> Rebuile All,点击两次“是”
就可以搞定问题了
以后编译完文件后,如果要编译另外一个文件,先 File -> Close Workspace,点击“是”
9. c语言程序,如何实现把本身程序删除。如打开1.exe,然后1.exe的功能就是删除本身,运行结束后
程序自删除的方式有很多,不过最终的思想不过是关闭本身进程,开启新进程用于删除自身。下面这个方法是用windows自带命令行程序实现删除。
命令行为 cmd.exe /c del filename
--------------------------------------------------------------------------------
代码示例:C语言形式
#include
#include
#include
BOOL SelfDel()
{
SHELLEXECUTEINFO sei;
TCHAR szMole [MAX_PATH],szComspec[MAX_PATH],szParams [MAX_PATH];
// 获得自身文件名. 获取cmd的全路径文件名
if((GetMoleFileName(0,szMole,MAX_PATH)!=0) &&
(GetShortPathName(szMole,szMole,MAX_PATH)!=0) &&
(GetEnvironmentVariable("COMSPEC",szComspec,MAX_PATH)!=0))
{
// 设置命令参数.
lstrcpy(szParams,"/c del ");
lstrcat(szParams, szMole);
lstrcat(szParams, " > nul");
// 设置结构成员.
sei.cbSize = sizeof(sei);
sei.hwnd = 0;
sei.lpVerb = "Open";
sei.lpFile = szComspec;
sei.lpParameters = szParams;
sei.lpDirectory = 0; sei.nShow = SW_HIDE;
sei.fMask = SEE_MASK_NOCLOSEPROCESS;
// 创建cmd进程.
if(ShellExecuteEx(&sei))
{
// 设置cmd进程的执行级别为空闲执行,使本程序有足够的时间从内存中退出.
SetPriorityClass(sei.hProcess,IDLE_PRIORITY_CLASS);
// 将自身进程的优先级置高
SetPriorityClass(GetCurrentProcess(),REALTIME_PRIORITY_CLASS);
SetThreadPriority(GetCurrentThread(),THREAD_PRIORITY_TIME_CRITICAL);
// 通知Windows资源浏览器,本程序文件已经被删除.
SHChangeNotify(SHCNE_DELETE,SHCNF_PATH,szMole,0);
return TRUE;
}
}
return FALSE;
}
---------------------------------------------------------------------------------
10. c语言中程序运行完有垃圾文件(运行中的时候强制关掉,然后删除该程序)怎么删也删不掉,怎么办
打开任务管理器,找到正在运行,也就是你要删除的文件,强制关闭,然后再删除。