//获得输入输出文件的HANDLE
CString cstrInput = GetAppPath()+"..\\oj\\in.data";
CString cstrOutput = GetAppPath()+"..\\oj\\out.data";
CString appPath = GetAppPath();
string seperator = "\\";//单引号
string fullPath = appPath.GetBuffer(0) +seperator+"..\\oj\\in.data";
HANDLE hinput = CreateFile("oj\\in.data",GENERIC_READ,FILE_SHARE_READ|FILE_SHARE_WRITE,&psa, OPEN_ALWAYS,FILE_ATTRIBUTE_NORMAL ,NULL);
HANDLE houtput = CreateFile(fullPath.c_str(),GENERIC_WRITE,FILE_SHARE_READ|FILE_SHARE_WRITE,&psa,CREATE_ALWAYS,FILE_ATTRIBUTE_NORMAL ,NULL);
STARTUPINFO si = { sizeof(si) };
si.cb = sizeof(si);
si.dwFlags = STARTF_USESTDHANDLES;
si.hStdInput = hinput;
si.hStdOutput = houtput;
CString cstrInput = GetAppPath()+"..\\oj\\in.data";
CString cstrOutput = GetAppPath()+"..\\oj\\out.data";
CString appPath = GetAppPath();
string seperator = "\\";//单引号
string fullPath = appPath.GetBuffer(0) +seperator+"..\\oj\\in.data";
HANDLE hinput = CreateFile("oj\\in.data",GENERIC_READ,FILE_SHARE_READ|FILE_SHARE_WRITE,&psa, OPEN_ALWAYS,FILE_ATTRIBUTE_NORMAL ,NULL);
HANDLE houtput = CreateFile(fullPath.c_str(),GENERIC_WRITE,FILE_SHARE_READ|FILE_SHARE_WRITE,&psa,CREATE_ALWAYS,FILE_ATTRIBUTE_NORMAL ,NULL);
STARTUPINFO si = { sizeof(si) };
si.cb = sizeof(si);
si.dwFlags = STARTF_USESTDHANDLES;
si.hStdInput = hinput;
si.hStdOutput = houtput;
使用C++创建文件句柄进行输入输出操作
本文详细介绍了如何使用C++通过获得应用程序路径来创建输入和输出文件句柄,并通过这些句柄进行文件读写操作。具体包括了获取应用程序路径的方法,以及如何使用`CreateFile`函数创建句柄,同时展示了`STARTUPINFO`结构体的使用,以配置启动参数。
1097

被折叠的 条评论
为什么被折叠?



