#include <stdio.h>
#include <stdlib.h>
#include <strings.h>
#include <netinet/sctp.h>
#include <errno.h>
void
Getsockopt(int fd, int level, int optname, void *optval, socklen_t *optlenptr)
{
if (getsockopt(fd, level, optname, optval, optlenptr) < 0) {
printf("errno :%d\n", errno);
exit(0);
}
}
int
main(void)
{
int sock_fd, retsz;
struct sctp_status status;;
retsz = sizeof(int);
//bzero(&status, retsz);
sock_fd = socket(AF_INET, SOCK_SEQPACKET, IPPROTO_SCTP);
Getsockopt(sock_fd,IPPROTO_SCTP, SCTP_STATUS, &status, &retsz);
printf("%d\n", status.sstat_outstrms);
}
我想问一下为什么getsockopt函数会出错,显示 Invalid argument,errno = 22;
是不是不支持SCTP_STATUS?如果是,要怎么才能支持?怎么才知道支不支持呢?谢谢