求助,关于linux下usb通信的c语言程序

求助,关于linux下usb通信的c语言程序,第1张

不知道你要提取到哪里,自作主张把提取出内容乎弯放入到txt文档中。输入文件:in.txt输出文件:out.txt代码如下:已在GCC测试。#includeintmain(intargc,char*argv[]){charbuffer[32]char*posFILE*fp_in=fopen("in.txt","r")FILE*fp_out=fopen("out.txt","w")if(!fp_in)returnwhile(!feof(fp_in)){fgets(buffer,32,fp_in)pos=strchr(strchr(buffer,'.')+1,'.')/*就这一句比较型顷答难理解,意思卜慧是查找第二个'.'出现位置*/*pos='\0'/*找到后,赋值为'\0',为fputs输出做准备*/fputs(buffer,fp_out)putc('\n',fp_out)}fclose(fp_in)fclose(fp_out)}

1.打开usb接口上的设备,或者打开usb控制器,涉及到windows的驱动访问。一般访问设备使用CreateFile打开设备,然后使用ReadFile/WriteFile读写设备。

2.例程:

    handle hFile = CreateFile(..., FILE_FLAG_overlapped, ...) //指定以异步方式打开

    byte bBuffer[100]

    overlapped o = { 0 }

    o.Offset = 345

    bool bReadDone = ReadFile(hFile, bBuffer, 100, null, &o) // bReadDone 指定I/O请求是不是以同步方式打开咐拆轿

    dword dwError = GetLastError()

    if (!bReadDone && (dwError == ERROR_IO_PENDING)) { //异步方式打开

        // The I/O is being performed asynchronously wait for it to complete

        WaitForSingleObject(hFile, infinite)

        bReadDone = TRUE

    }

    if (bReadDone) {

    衡肆       // o.Internal contains the I/O error

           // o.InternalHigh contains the 御祥number of bytes transferred

           // bBuffer contains the read data

    } else {

            // An error occurred see dwError

    }


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/8246562.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-14
下一篇 2023-04-14

发表评论

登录后才能评论

评论列表(0条)

保存