2010-04

//#define errno   (*_errno())
//strerror stderr clearerr ferror perror, _wperror

int main()  
{
	int  fh;
	//if ((_access("NOSUCHF.ILE", 2)) == -1) {
	if (_sopen_s(&fh, "NOSUCHF.ILE", _O_RDONLY, _SH_DENYNO, 0) != 0)
	{
		/* Three ways to create error message: */
		perror("perror says open failed");//perror says open failed: No such file or directory
		printf("strerror says open failed:%d %s\n", errno, strerror(errno)); // strerror says open failed: 2 No such file or directory
		//printf(_strerror("_strerror says open failed")); // _strerror says open failed: No such file or directory
		// Note: strerror and _strerror are deprecated; consider using strerror_s and _strerror_s instead.
		char buff[1024] = { 0 };
		_strerror_s(buff, "_strerror says open failed");
		printf(buff);
		printf("\n");

		// fprintf(stderr, _strerror(NULL));//直接输出 No such file or directory
		//C28183: _strerror(NULL)可以是0  
		//_strerror_s(buff, NULL);
		fprintf(stdout, buff);
	}
	else
	{
		printf("open succeeded on input file\n");
		_close(fh);
	}

}