_tfopen_s打开文件返回的错误码信息

本文探讨了CComBSTR在记录文件操作日志中的使用,包括查询目录、打开文件及错误处理的过程。文章详细展示了如何利用CComBSTR记录文件路径和操作状态,并针对文件打开失败的情况,通过获取并解析错误码来提供详细的错误信息。
CComBSTR errorLog;
errorLog += _T("1.查询目录:");
errorLog += str1;
errorLog += _T("\r\n");

if( (err  = _tfopen_s( &stream, str1, _T("r") )) ==0 )
{
	AddFont(cType,&LogFont,&ntme,str1,type);
	if( stream)
	{
		fclose( stream );
		stream = NULL;
	}
	errorLog += _T("  打开成功!");
	errorLog += _T("\r\n");
}
else
{
	int no;
	_get_errno(&no);
	errorLog += _T("  打开文件失败,错误码为:");
	CString temp;
	temp.Format(_T("%d"), no);
	errorLog += temp;
	errorLog += _T("\r\n");
}

Constant	System error message	Value
	EPERM	Operation not permitted	1
	ENOENT	No such file or directory	2
	ESRCH	No such process	3
	EINTR	Interrupted function	4
	EIO	I/O error	5
	ENXIO	No such device or address	6
	E2BIG	Argument list too long	7
	ENOEXEC	Exec format error	8
	EBADF	Bad file number	9
	ECHILD	No spawned processes	10
	EAGAIN	No more processes or not enough memory or maximum nesting level reached	11
	ENOMEM	Not enough memory	12
	EACCES	Permission denied	13
	EFAULT	Bad address	14
	EBUSY	Device or resource busy	16
	EEXIST	File exists	17
	EXDEV	Cross-device link	18
	ENODEV	No such device	19
	ENOTDIR	Not a directory	20
	EISDIR	Is a directory	21
	EINVAL	Invalid argument	22
	ENFILE	Too many files open in system	23
	EMFILE	Too many open files	24
	ENOTTY	Inappropriate I/O control operation	25
	EFBIG	File too large	27
	ENOSPC	No space left on device	28
	ESPIPE	Invalid seek	29
	EROFS	Read-only file system	30
	EMLINK	Too many links	31
	EPIPE	Broken pipe	32
	EDOM	Math argument	33
	ERANGE	Result too large	34
	EDEADLK	Resource deadlock would occur	36
	EDEADLOCK	Same as EDEADLK for compatibility with older Microsoft C versions	36
	ENAMETOOLONG	Filename too long	38
	ENOLCK	No locks available	39
	ENOSYS	Function not supported	40
	ENOTEMPTY	Directory not empty	41
	EILSEQ	Illegal byte sequence	42
	STRUNCATE	String was truncated	80
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值