【发布时间】:2013-09-02 10:10:38
【问题描述】:
代码如下:
char path = "/temp/abc";
if (mkfifo(path, S_IRWXU) != -1)
{
/* Other codes. */
}
对于 if 检查,我得到了 Klocwork misra:
按位运算的操作数类型为“int”而不是“无符号整数”
在同一行,lint 表示:
违反 MISRA 2004 要求的规则 10.1,禁止隐式转换:有符号与无符号
但我知道 mkfifo 采用的第二个参数是 mode_t 类型,它实际上应该是一个无符号整数。据我们所知
#deinf S_IRWXU (__S_IREAD|__S_IWRITE|__S_IEXEC)
应该没有问题。
知道为什么我会收到这样的警告吗?
【问题讨论】:
标签: linux lint mkfifo klocwork