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。

TTcloud(月$70)E3-1270V3 8GB内存 10Mbps带宽 ,日本独立服务器

关于TTCLOUD服务商在今年初的时候有介绍过一次,而且对于他们家的美国圣何塞服务器有过简单的测评,这个服务商主要是提供独立服务器业务的。目前托管硬件已经达到5000台服务器或节点,主要经营圣何塞,洛杉矶以及日本东京三个地区的数据中心业务。这次看到商家有推出了新上架的日本独立服务器促销活动,价格 $70/月起,季付送10Mbps带宽。也可以跟进客户的需求进行各种DIY定制。内存CPU硬盘流量带宽价...

Digital-vm80美元,1-10Gbps带宽日本/新加坡独立服务器

Digital-vm是一家成立于2019年的国外主机商,商家提供VPS和独立服务器租用业务,其中VPS基于KVM架构,提供1-10Gbps带宽,数据中心可选包括美国洛杉矶、日本、新加坡、挪威、西班牙、丹麦、荷兰、英国等8个地区机房;除了VPS主机外,商家还提供日本、新加坡独立服务器,同样可选1-10Gbps带宽,最低每月仅80美元起。下面列出两款独立服务器配置信息。配置一 $80/月CPU:E3-...

A400:36元/季,16.8/月kvm架构,线路优质,延迟低

A400互联是一家成立于2020年的商家,主要推行洛杉矶服务器采用kvm架构,线路优质,延迟低,稳定性高!全场产品对标腾讯云轻量,服务器线路有有美国洛杉矶cn2_gia、香港cn2+cmi,目前推行的vps服务器均为精心挑选的优质线路机房,A400互联推出了夏季优惠洛杉矶5折、香港7折促销活动,质量可靠,价格实惠!二:优惠码洛杉矶五折优惠码:20210620香港cn2七折优惠码:0710三、优惠方...

fclose为你推荐
sdf关于sdf的问题:请问这个是什么啊,怎么弄好啊?strcatc语言,怎么使用 strcat字符串连接函数,程序如图。rownumbersql server 2005中row_number怎么用spawningVC中Error spawning cl.exe错误的解决方法.民生电商民生电商招的仓库操作工是干什么的smartupload为什么使用smartupload执行上传保存操作时用这句smart.save("upload")失败用smart.save("/upload")成功弹幕网站谁能给我解释一下什么叫A站,什么叫B站?都是啥网站?layoutsubviews如何修改TableViewCell中的ImageView的Frame和大小booth算法用Booth算法计算-4×3的4位补码乘法运算,要求写出每一步运算过程及运算结果 麻烦详细说明每一步的操作什么是SOA什么是中子刀?您了解吗?
中文域名注册 万网域名管理 免费ftp空间 eq2 qq数据库 最好的空间 150邮箱 美国十次啦服务器 免费申请网站 电信主机 怎么建立邮箱 免费私人服务器 万网空间管理 免费外链相册 lamp是什么意思 lamp兄弟连 徐州电信 ssl加速 新疆服务器 学生机 更多