- #pragma once与#ifndef
#pragma once
//两者效果是一样的
#ifndef 文件名
#define 文件名
#endif
作用:层叠包含极容易引起编译器的编译错误,如果没有指定编译一次,则编译时出现重定义错误。
区别:#pragma once效率更高更简洁,但#pragma once依赖于编译器,可移植性较差。#ifndef是 C/C++ 标准中的一部分,支持 C/C++ 的编译器都能使用,可移植性更高。
- Windows同步异步IO
Windows打开关闭设备API
文件、目录、逻辑磁盘驱动器、物理磁盘驱动器、并口、串口
//文件、目录、逻辑磁盘驱动器、物理磁盘驱动器、并口、串口打开
CreateFile
//关闭
CloseHandle
//打开邮件槽
CreateMailslot
//关闭
CloseHandle
//打开命名管道和匿名管道
CreateNamedPipe CreateFile
//关闭
CloseHandle
//套接字
socket ,accpect ,closesocket
//打开控制台
CreateConsoleScreenBuff GetstdHandle CloseHandle
HANDLE CreateFile(
LPCTSTR lpFileName, // 指向文件名的指针
DWORD dwDesiredAccess, // 访问模式(写 / 读)
DWORD dwShareMode, // 共享模式
LPSECURITY_ATTRIBUTES lpSecurityAttributes, // 指向安全属性的指针
DWORD dwCreationDisposition, // 如何创建
DWORD dwFlagsAndAttributes, // 文件属性
HANDLE hTemplateFile // 用于复制文件句柄
);