美文网首页
第10章 同步设备I/O与一部设备I/O

第10章 同步设备I/O与一部设备I/O

作者: 常春藤上的蜗牛 | 来源:发表于2017-12-08 09:01 被阅读0次

    I/O完成端口 线程间通信机制

    10.1打开和关闭设备

    设备 用来打开设备的函数
    目录 CreateFile(pszName为路径名或UNC路径名),指定标志FILE_FLAG_BACKUP_SEMATICS标志
    文件 CreateFile(pszName为路径名或UNC路径名)
    逻辑磁盘驱动器 CreateFile(pszName为"\\.\x:")
    物理磁盘驱动器 CreateFile(pszName为"\\.\PHYSICALDRIVEx")
    串口 CreateFile(pszName为"COMx")
    并口 CreateFile(pszName为"LPTx")
    邮件槽服务器 CreateMailslot(pszName为"\\.\mailslot\mailslotname")
    邮件槽客户端 CreateFile(pszName为"\\servername\mailslot\mailslotname")
    命名管道服务器 CreateNamePipe(pszName为"\\.\pipe\pipename")
    命名管道客户端 CreateFile(pszName为"\\servername\mailslot\mailslotname")
    匿名管道 CreatePipe用来打开服务器和客户端
    套接字 Socket, accept或acceptEx
    控制台 CreateConsoleScreenBuffer或GetStdHandle

    以上每个函数返回一个标识设备的符号。
    **SetCommConfig设置串口的波特率

    BOOL SetCommConfig(
      HANDLE          hCommDev,
      LPCOMMMCONFIG   pCC,
      DWORDD          dwSize);
    

    完成对设备的操作之后,就需要对设备进行关闭,大部分设备可以用CloseHandle来进行关闭,但是套接字必须调用closesocket。

    BOOL CloseHandle(HANDLE hObject);
    int closesocket(SOCKET s);
    

    如果有一个设备句柄可以调用GetFileType来查出设备的类型:

    DWORD GetFileType(HANDLE hDevice);
    

    GetFileType函数的返回值

    描述
    FILE_TYPE_UNKNOWN 指定的文件类型为未知类型
    FILE_TYPE_DISK 指定的文件是一个磁盘文件
    FILE_TYPE_CHAR 指定的文件时一个字符文件,一般来说是一个并口设备或控制台
    FILE_TYPE_PIPE 指定的文件是命名管道或匿名管道

    相关文章

      网友评论

          本文标题:第10章 同步设备I/O与一部设备I/O

          本文链接:https://www.haomeiwen.com/subject/zybsixtx.html