微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

FIONBIO 用于 Fusion 下的 ioctl

如何解决FIONBIO 用于 Fusion 下的 ioctl

我正在开发一个基于 uCOS 和 Fusion 标准(而不是 POSIX)的项目,我想将我的套接字设置为非阻塞模式。 POSIX ioctl 命令将是 ioctl(data,FIONBIO,TRUE); 但我似乎无法让它在 Fusion 下运行。 在标题 fclioctl.h评论中,我看到以下内容

/*
 *  The UNIX deFinition was as follows:
 *
 *      int ioctl( int fd,int cmd,... )
 *
 *  But since POSIX does not include "ioctl" as part of it's requirements for
 *  Fusion the format follows more closely to Win32.
 *
 *  TO get information about a device,a handle to the device or a device in
 *  it's device stack must be obtained.
 */

fclIoResult_t fclIoctl
(
    fclHandle_t     hDevice,/*  Handle to device                */
    fclIoCode_t     nIoControlCode,/*  Function to perform             */
    fclIoBuffer_t   pInBuffer,/*  Data to the device              */
    fclIoSize_t     nInBufferSize,/*  Size of data to the device      */
    fclIoBuffer_t   pOutBuffer,/*  Data from the device            */
    fclIoSize_t     nOutBufferSize,/*  Size of buffer to receive data  */
    fclIoSize_t*    pnBytesReturned     /*  Actual number of bytes received */
);

对于 1fclIoCode_t`,我只看到:

/*
 *  IOCTL Types
 */

typedef unsigned char   FIO_BYTE;
typedef unsigned int    FIO_WORD;
typedef u32   FIO_DWORD;

#ifndef FCL_IOCODE_T
    typedef u32 fclIoCode_t;
    #define FCL_IOCODE_T    fclIoCode_t
#endif

有没有人有使用 Fusion 的经验并且可以在这里提供帮助?

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。