fclosefclose / fopen

fclose  时间:2021-07-01  阅读:()

C语言中如何用fclose关闭一个文件?

以下是原代码,VC2008编译通过,VC6编译的话需要安装SDK 关闭运行中的exe需要用TerminateProcess函数,而不是fclose。

在使用这个函数之前,需要先找到这个exe运行的进程。

以下程序的第一个参数是你需要关闭exe文件的名字。

// ter_console.cpp : Defines the entry point for the console application. // #include <Windows.h> #include <tchar.h> #include <assert.h> #include <Psapi.h> #include <Shlwapi.h> #ment(lib, "psapi.lib") #ment(lib, "shlwapi.lib") int _tmain(int argc, _TCHAR* argv[]) { LPCTSTR lpProcName = argv[1]; // Enumerate Process BOOL bReturn = FALSE; DWORD dwPidArray[1024] = {0}; DWORD dwRequired = 0; bReturn = EnumProcesses(dwPidArray, sizeof(dwPidArray), &dwRequired); assert(bReturn); // Find the Target Process DWORD i; DWORD dwTotal = dwRequired / sizeof(DWORD); for (i = 0; i < dwTotal; i++) { DWORD dwPid = dwPidArray[i]; if (dwPid != 0) { HANDLE hProcess = OpenProcess(PROCESS_ALL_ACCESS, FALSE, dwPid); if(hProcess) { // Enumerate Modules of Each Process HMODULE hModule = 0; DWORD dwReturnBytes = 0; bReturn = EnumProcessModules(hProcess, &hModule, sizeof(hModule), &dwReturnBytes); if (bReturn) { // Get the Process Name TCHAR szFileName[MAX_PATH] = {0}; GetModuleFileNameEx(hProcess, hModule, szFileName, MAX_PATH); if (lstrcmpi(PathFindFileName(szFileName), lpProcName) == 0) { // Terminate the Process TerminateProcess(hProcess, 1); } } } } } return 0; }

C语言中的fclose函数该怎么用?

fclose()函数功能为:关闭一个流,把缓冲区内最后剩余的数据输出到磁盘文件中,并释放文件指针和有关的缓冲区。

( fopen()打开一个流 ) 头文件: ? ? ?#include<stdio.h> 函数原型: ? int fclose(FILE *stream); 说明: ? ?如果流成功关闭,fclose 返回 0,否则返回EOF(-1)。

出错的原因包括:传给函数的文件指针不合法,程序运行时遇到中断信号或是操作系统出现故障等等,可通过查看errno值来确定出错原因。

因此,正确的使用方法为: if?(?fclose(fp)?) { ????perror("close?file");?//报告相应错误 }但,一般我们写练习代码时,碰上出错的可能性比较小,而且,程序基本上就是运行一次,所以常常不做错误检查。

直接写成fclose(fp); 建议:使用正确的方法书写代码,养成良好的编码习惯,提高程序健壮性,提高程序的可维护性。

fclose时出现错误

(gdb) p fp $21 = (FILE *) 0x603fd0 首先.p fp打印的是文件指针.也就是fp的指针地址.而是文件指针的内容... 你应该使用 p *fp查看_fileno 如果不为-1.则文件是被打开的. 其实在fp前做个检查就好了 ... if(fp) fclose(fp); 还有一种办法.如果你是LINUX的话. 在调试的时候.在fclose之前打上断点.运行到断点的时候ps看下程序的PID.去proc里看下文件是否已经被关闭了... 具体路径在/proc/PID/fd ls -l一下.就可以看到打开了哪些文件.以及文件描述符.如果没有fopen打开的文件.就表示已经被关闭过了...

fclose / fopen

函数名: fclose 功 能: 关闭一个流 用 法: int fclose(FILE *stream); 程序例: #include <string.h> #include <stdio.h> int main(void) { FILE *fp; char buf[11] = "0123456789"; fopen(打开文件) 相关函数 open,fclose 表头文件 #include<stdio.h> 定义函数 FILE * fopen(const char * path,const char * mode); 函数说明 参数path字符串包含欲打开的文件路径及文件名,参数mode字符串则代表着流形态。

mode有下列几种形态字符串: r 打开只读文件,该文件必须存在。

r+ 打开可读写的文件,该文件必须存在。

w 打开只写文件,若文件存在则文件长度清为0,即该文件内容会消失。

若文件不存在则建立该文件。

w+ 打开可读写文件,若文件存在则文件长度清为零,即该文件内容会消失。

若文件不存在则建立该文件。

a 以附加的方式打开只写文件。

若文件不存在,则会建立该文件,如果文件存在,写入的数据会被加到文件尾,即文件原先的内容会被保留。

a+ 以附加方式打开可读写的文件。

若文件不存在,则会建立该文件,如果文件存在,写入的数据会被加到文件尾后,即文件原先的内容会被保留。

上述的形态字符串都可以再加一个b字符,如rb、w+b或ab+等组合,加入b 字符用来告诉函数库打开的文件为二进制文件,而非纯文字文件。

不过在POSIX系统,包含Linux都会忽略该字符。

由fopen()所建立的新文件会具有S_IRUSR|S_IWUSR|S_IRGRP|S_IWGRP|S_IROTH|S_IWOTH(0666)权限,此文件权限也会参考umask 值。

返回值 文件顺利打开后,指向该流的文件指针就会被返回。

若果文件打开失败则返回NULL,并把错误代码存在errno 中。

附加说明 一般而言,开文件后会作一些文件读取或写入的动作,若开文件失败,接下来的读写动作也无法顺利进行,所以在fopen()后请作错误判断及处理。

如果流成功关闭,fclose 返回 0,否则返回EOF(-1)。

如果流为NULL,而且程序可以继续执行,fclose设定error number给EINVAL,并返回EOF。

NameCheap 2021年新年首次活动 域名 域名邮局 SSL证书等

NameCheap商家如今发布促销活动也是有不小套路的,比如会在提前一周+的时间告诉你他们未来的活,比如这次2021年的首次活动就有在一周之前看到,但是这不等到他们中午一点左右的时候才有正式开始,而且我确实是有需要注册域名,等着看看是否有真的折扣,但是实际上.COM域名力度也就一般需要51元左右,其他地方也就55元左右。当然,这次新年的首次活动不管如何肯定是比平时便宜一点点的。有新注册域名、企业域...

选择Vultr VPS主机不支持支付宝付款的解决方案

在刚才更新Vultr 新年福利文章的时候突然想到前几天有网友问到自己有在Vultr 注册账户的时候无法用支付宝付款的问题,当时有帮助他给予解决,这里正好顺带一并介绍整理出来。毕竟对于来说,虽然使用的服务器不多,但是至少是见过世面的,大大小小商家的一些特性特征还是比较清楚的。在这篇文章中,和大家分享如果我们有在Vultr新注册账户或者充值购买云服务器的时候,不支持支付宝付款的原因。毕竟我们是知道的,...

CloudCone($82/月)15-100M不限流量,洛杉矶CN2 GIA线路服务器

之前分享过很多次CloudCone的信息,主要是VPS主机,其实商家也提供独立服务器租用,同样在洛杉矶MC机房,分为两种线路:普通优化线路及CN2 GIA,今天来分享下商家的CN2 GIA线路独立服务器产品,提供15-100Mbps带宽,不限制流量,可购买额外的DDoS高防IP,最低每月82美元起,支持使用PayPal或者支付宝等付款方式。下面分享几款洛杉矶CN2 GIA线路独立服务器配置信息。配...

fclose为你推荐
settimerMFC 中,全局SetTimer函数怎么用?云图片云相册是什么意思mindmanager破解版求mindmanager 2019 的注册机vipjrvipjr跟哒哒英语比,两家公司的区别在哪里?各自的特点有哪些?vipjrvipjr怎么样?有真实体验的来说一下radius认证PPPoE有认证的功能,RADIUS也有验证功能,两者有区别么??弹幕网站视频弹幕网站推荐layoutsubviews如何修改TableViewCell中的ImageView的Frame和大小booth算法利用补码booth计算【xy】补,其中x=0.1110,y=-0.1101什么是SOA什么是java架构
三级域名网站 美国主机排名 vpsio linode代购 cdn服务器 服务器日志分析 evssl证书 evssl 福建天翼加速 酷番云 中国域名 lamp兄弟连 腾讯网盘 攻击服务器 阿里云邮箱个人版 asp空间 谷歌搜索打不开 防盗链 cdn免备案空间 卡巴斯基免费版下载 更多