linux中creat-file函数,c语言createfile函数用法?
CreateFile用法和例子
函数原型:123456789HANDLE CreateFile(LPCTSTR lpFileName,//指向文件名的指针DWORD dwDesiredAccess,//访问模式(写/读)DWORD dwShareMode,//共享模式LPSECURITY_ATTRIBUTES lpSecurityAttributes,//指向安全属性的指针DWORD dwCreationDisposition,//如何创建DWORD dwFlagsAndAttributes,//文件属性HANDLE hTemplateFile//用于复制文件句柄);
参数列表
lpFileName String 要打开的文件的名字
dwDesiredAccess Long 如果为 GENERIC_READ 表示允许对设备进行读访问;如果为 GENERIC_WRITE 表示允许对设备进行写访问(可组合使用);如果为零,表示只允许获取与一个设备有关的信息
dwShareMode Long, 零表示不共享; FILE_SHARE_READ 和/或 FILE_SHARE_WRITE 表示允许对文件进行共享访问
lpSecurityAttributes SECURITY_ATTRIBUTES, 指向一个SECURITY_ATTRIBUTES结构的指针,定义了文件的安全特性(如果操作系统支持的话)
dwCreationDisposition Long,下述常数之一:
CREATE_NEW 创建文件;如文件存在则会出错
CREATE_ALWAYS 创建文件,会改写前一个文件
OPEN_EXISTING 文件必须已经存在。由设备提出要求
OPEN_ALWAYS 如文件不存在则创建它
TRUNCATE_EXISTING 讲现有文件缩短为零长度
dwFlagsAndAttributes Long, 一个或多个下述常数
FILE_ATTRIBUTE_ARCHIVE 标记归档属性
FILE_ATTRIBUTE_COMPRESSED 将文件标记为已压缩,或者标记为文件在目录中的默认压缩方式
FILE_ATTRIBUTE_NORMAL 默认属性
FILE_ATTRIBUTE_HIDDEN 隐藏文件或目录
FILE_ATTRIBUTE_READONLY 文件为只读
FILE_ATTRIBUTE_SYSTEM 文件为系统文件
FILE_FLAG_WRITE_THROUGH 操作系统不得推迟对文件的写操作
FILE_FLAG_OVERLAPPED 允许对文件进行重叠操作
FILE_FLAG_NO_BUFFERING 禁止对文件进行缓冲处理。文件只能写入磁盘卷的扇区块
FILE_FLAG_RANDOM_ACCESS 针对随机访问对文件缓冲进行优化
FILE_FLAG_SEQUENTIAL_SCAN 针对连续访问对文件缓冲进行优化
FILE_FLAG_DELETE_ON_CLOSE 关闭了上一次打开的句柄后,将文件删除。特别适合临时文件
也可在Windows NT下组合使用下述常数标记:1SECURITY_ANONYMOUS, SECURITY_IDENTIFICATION, SECURITY_IMPERSONATION, SECURITY_DELEGATION, SECURITY_CONTEXT_TRACKING, SECURITY_EFFECTIVE_ONLY
hTemplateFile Long, 如果不为零,则指定一个文件句柄。新文件将从这个文件中复制扩展属性
返回值
如执行成功,则返回文件句柄。
INVALID_HANDLE_VALUE表示出错,会设置GetLastError。即使函数成功,但若文件存在,且指定了CREATE_ALWAYS 或 OPEN_ALWAYS,GetLastError也会设为ERROR_ALREADY_EXISTS
(以上摘自百度百科)
实例:
1、直接在函数内指定文件地址:123456789101112131415void playCEwav(){CHAR *pBuffer;DWORD RSize;int fileSize = 0;int i;HANDLE hOpenFile = (HANDLE)CreateFile(L"E:\\a.text", GENERIC_READ, FILE_SHARE_READ, NULL, OPEN_EXISTING, NULL, NULL);if (hOpenFile == INVALID_HANDLE_VALUE){hOpenFile = NULL;MessageBoxA(NULL,"Can not open the file","Playwav", MB_OK);}fileSize = GetFileSize(hOpenFile, NULL);pBuffer = (CHAR *)malloc(fileSize);ReadFile(hOpenFile, pBuffer, fileSize, &RSize, NULL);//可将pBuffer显示在某区域或写入另一个文件来检查读出是否正确
free(pBuffer);
}
2、把文件地址通过参数传入:1234567891011121314151617181920void playwav(TCHAR * path){CHAR *pBuffer;DWORD RSize;int fileSize = 0;int i;TCHAR szPath[100];memset(szPath, 0,sizeof(szPath));_tcscpy(szPath, path);HANDLE hOpenFile = (HANDLE)CreateFile(szPath, GENERIC_READ, FILE_SHARE_READ, NULL, OPEN_EXISTING, NULL, NULL);if (hOpenFile == INVALID_HANDLE_VALUE){hOpenFile = NULL;MessageBoxA(NULL,"Can not open the file","Playwav", MB_OK);}fileSize = GetFileSize(hOpenFile, NULL);pBuffer = (CHAR *)malloc(fileSize);ReadFile(hOpenFile, pBuffer, fileSize, &RSize, NULL);free(pBuffer);}
linux中creat-file函数,c语言createfile函数用法?相关推荐
- 【Rust 日报】2021-11-11 保持冷静,学习Rust,我们很快就会在Linux中更多的看到这种语言...
为Rust有很多字符串类型而烦恼吗?好吧,它没有必要 众所周知Rust有几种不同的字符串类型.两个主要的竞争者是: &str是一个 "字符串引用".它是不可调整大小的,它的 ...
- 在Linux 中编写并运行C语言
在Linux 中编写并运行C语言 流程 后续 流程 首先我们创建一个C语言文件 vim 1.c 我们进行相关程序的编写(我们以简单的输入输出为例) #include <stdio.h> i ...
- c语言文件打开函数,C语言fopen函数中文件打开方式(参数值)
满意答案 keaichengb.. 推荐于 2017.09.05 采纳率:40% 等级:12 已帮助:3704人 C语言fopen函数用于打开文件. 函数原型:FILE * fopen(cons ...
- c语言createfile函数,c ++ CreateFile函数错误[关闭](c++ CreateFile function error [closed])
c ++ CreateFile函数错误[关闭](c++ CreateFile function error [closed]) 我想使用函数CreateFile来创建一个文件,但有些东西是错的,我不知 ...
- c语言timer linux 回调函数_C语言回调函数详解
1. 什么是回调函数? 回调函数,光听名字就比普通函数要高大上一些,那到底什么是回调函数呢?恕我读得书少,没有在那本书上看到关于回调函数的定义.我在百度上搜了一下,发现众说纷纭,有很大一部分都是使用类 ...
- c语言中求大于的函数,c语言编写函数,求一组数中大于平均值的数的个数.
C语言编写程序 给定一组数,求大于0,等于0,小于0的数据个数 #define N 10 main(){int num1=0,num2=0,num3=0,i;for(i=0;i 一道C语言题目:求一组 ...
- 使用gcc与makefile在linux中运行简单的c语言程序
目录 使用GCC编译C语言程序 示例代码 main1.c sub1.c 编译与链接 使用Makefile 在Windows下运行程序 使用GCC编译C语言程序 示例代码 main1.c 说明:主程序文 ...
- linux怎么看go写的程序进程,Linux中查看进程状态信息-Go语言中文社区
Linux中查看进程状态信息 一.常用命令总结 ps -l 列出与本次登录有关的进程信息: ps -aux 查询内存中进程信息: ps -aux | grep *** 查询***进程的详细 ...
- linux c语言 休眠函数,c语言sleep函数报错
关于sleep()函数在windows系统和linux系统下是两个不同的函数,差别较大,但功能是相同的,都是将进程挂起一段时间. windows系统下函数名为Sleep(),其函数原型为: #incl ...
最新文章
- 数据库-数据库的介绍
- linux查找influx的安装位置,InfluxDB学习之InfluxDB的安装和简介 | Linux大学
- 常用SQL语句实例 11
- bzoj1038 [ZJOI2008]瞭望塔 枚举
- fib函数用python编写求第n项_第6章函数-4 使用函数输出指定范围内Fibonacci数的个数|简明python教程|python入门|python教程...
- helm安装_安装 helm 包管理工具
- jquery ajax实例 php,jquery中各个ajax实例操作
- 27. netstat
- python计算机视觉编程——sift特征提取和ransac减少错配
- 小米便签源码分析——data包
- 企业级大数据智能分析平台 -- DataA
- oracle11g64位怎么用sql,plsql32 位连接oracle11g64位方法
- 浅谈选择示波器时的“5倍法则”
- Tensorflow Serving部署模型
- STM32仿真器下载配置
- HTML Table之展开收起
- html表格背景图片格式,css背景颜色、背景图片,以及列表的多种样式
- Konga面板接入LDAP踩坑实战
- 中兴手机、泰康:微信营销的妙用与滥用
- 时间的基本概念及GPS北斗卫星时钟授时技术