c -为什么open/send/sendto/sendmsg函数中的flags参数是有符号整数而不是无符号整数?



正如您在手册中看到的:

   ssize_t send(int sockfd, const void *buf, size_t len, int flags);
   ssize_t sendto(int sockfd, const void *buf, size_t len, int flags,
                  const struct sockaddr *dest_addr, socklen_t addrlen);
   ssize_t sendmsg(int sockfd, const struct msghdr *msg, int flags);

由于没有理由在标志中添加/减去标志,也没有理由将其转换为任何其他类型,并且对标志进行的唯一操作是设置标志位或测试是否设置了一个或多个位,因此没有理由将其定义为有符号或无符号。两个都可以。

最新更新