C语言常用函数库中函数

1.pow(x,y);求x的y次方;
2.strstr(str1,str2);判断str2是否为str1的子串,若是返回首次出现的位置,若不是返回NULL;
3.strcat(char* dest, const char src);字符串剪接函数,将src接到dest尾部;
4.strcpy(char
dest, const char src);字符串复制函数,将带有\0结束符的src复制到dest;
5.sprintf(),将数据按照指定格式,向指定地址输出;例如十进制97可按%d输出到指定缓冲区,缓冲区中存储的是字符串97;按%c输出到缓冲区,存储的是‘a’;
6.snprintf(char
str, size_t size,constcharformat, …),效果同sprintf,但可以指定要拷贝size-1个字符,snprintf的返回值是欲写入的字符串(即源字符串)长度,而不是实际写入的字符串度
7.fprintf(FILE
stream, const char*format, [argument]),按指定格式向指定流输出,如将流指定为stdout时,即输出到控制台,和printf效果一样;
8.atoi(),ascii to integer,将字符串转换成整数,该函数要求被转换的字符串是按十进制数理解的,可识别负数;
9.atof(),把字符串转换成浮点数;
10.double strtod(const char *nptr,char **endptr);将字符串转换成浮点数,若endptr不为NULL,则会将遇到不合条件而终止的nptr中的字符指针由endptr传回。
11.ntohl(),linux的源代码(/include/netinet/in.h)

# if __BYTE_ORDER == __BIG_ENDIAN
/* The host byte order is the same as network byte order,
   so these functions are all just identity.  */
# define ntohl(x) (x)
# define ntohs(x) (x)
# define htonl(x) (x)
# define htons(x) (x)
# else
#  if __BYTE_ORDER == __LITTLE_ENDIAN
#   define ntohl(x) __bswap_32 (x)
#   define ntohs(x) __bswap_16 (x)
#   define htonl(x) __bswap_32 (x)
#   define htons(x) __bswap_16 (x)
#  endif
# endif

从上面的头文件内容可以看出,ntohs和htons是一样的。如果平台是大字序的(如Pocket PC),则这些函数不作任何转换,只有在平台是小字序时(如X86),这些函数才进行相应的转换,htons和ntohs(以及htonl和ntohl)实际上没有任何区别,都是把字节序反转。

12.setsocketopt(int sock, int level, int optname, const void *optval, socklen_t optlen)
设置套接字属性
参数:
sockfd:套接字描述符
level:协议层 可以取三种值:

1)SOL_SOCKET:通用套接字选项

2)IPPROTO_IP:IP选项

3)IPPROTO_TCP:TCP选项

optname:选项名,指定控制的方式,最重要的参数;

选项名称 说明 数据类型

                                           SOL_SOCKET

=========================================================
SO_BROADCAST 允许发送广播数据 int

SO_DEBUG 允许调试 int

SO_DONETROUTE 不查找路由 int

SO_ERROR 获得套接字错误 int

SO_KEEPALIVE 保持连接 int

SO_LINGER 延迟关闭连接 struct linger

SO_OOBINLINE 带外数据放入正常数据流 int

SO_RCVBUF 接受缓冲区大小 int

SO_SNDBUF 发送缓冲区大小 int

SO_RCVLOWAT 接受缓冲区下限 int

SO_SNDLOWAT 发送缓冲区下限 int

SO_RCVTIMEO 接受超时 struct timeval

SO_SNDTIMEO 发送超时 struct timeval

SO_REUSEADDR 允许重用本地地址和端口 int

SO_TYPE 获得套接字类型 int

SO_BSDCOMPAT 与BSD系统兼容 int

==========================================================
IPPROTO_IP
========================================================= =

IP_HDRINCL 在数据包中包含IP首部 int

IP_OPTIONS IP首部选项 int

IP_TOS 服务类型

IP_TTL 生存时间 int

============================================================
IPPRO_TCP

TCP_MAXSEG TCP最大数据段的大小 int

TCP_NODELAY 不使用Nagle算法 int

============================================================
optval:选项值
optlen:选项值大小

    这些函数常会带来很大的便利性,要做到灵活运用。
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值