Linux 线程库

小弟总结的,请各位大侠指导;

Linux 库

Linux 是多用户多任务的操作系统... 这写简单的就不多说了。

Linux下的 多线程遵循POSIX接口,即 pthread。 LinuxThreads 是现有Linux 平台上最为广泛的线程库,其经常会用到下面的一些函数:

int  pthread_created(pthread_t thread ,const pthread_attr_t *ttr, void *(*func) (void) ,void *arg)
 
 第一个参数 保存线程ID,以此:第2个 说明要创建的线程属性,NULL 表示缺省。

第 3  线程运行函数的起始地址,一个(*void)参数。 第4 个 参数 一般指向一个结构体。



pthread_join() 等待线程结束。

int pthread_join(pthread_t thread, void * *statues)
// thread 线程标识符  ,  

我去啊。感觉都还是比较简单,一下不多说了。看下Linux网络编程方面:

ssize_t recvfrom(int sock, void *buf, size_t len, int flags, struct sockaddr *from, socklen_t *fromlen);

最常用的函数吧。

sock:索引将要从其接收数据的套接字。 buf:存放消息接收后的缓冲区。 len:buf所指缓冲区的容量。 flags:是以下一个或者多个标志的组合体,可通过or操作连在一起 MSG_DONTWAIT:操作不会被阻塞。 MSG_ERRQUEUE: 指示应该从套接字的错误队列上接收错误值,依据不同的协议,错误值以某种辅佐性消息的方式传递进来, 使用者应该提供足够大的缓冲区。导致错误的原封包通过msg_iovec作为一般的数据来传递。导致错误的数据报原目标地址作为msg_name被提供。 错误以sock_extended_err结构形态被使用。

from:指向存放对端地址的区域,如果为NULL,不储存对端地址。 fromlen:作为入口参数,指向存放表示from最大容量的内存单元。作为出口参数,指向存放表示from实际长度的内存单元。

msg:指向存放进入消息头的内存缓冲,结构形态如下 struct msghdr { void msg_name; / optional address / socklen_t msg_namelen; / size of address */ struct iovec msg_iov; / scatter/gather array / size_t msg_iovlen; / # elements in msg_iov */ void msg_control; / ancillary data, see below / socklen_t msg_controllen; / ancillary data buffer len / int msg_flags; / flags on received message */ };

成功执行时,返回接收到的字节数。另一端已关闭则返回0。失败返回-1,errno被设为以下的某个值
EAGAIN:套接字已标记为非阻塞,而接收操作被阻塞或者接收超时 EBADF:sock不是有效的描述词 ECONNREFUSE:远程主机阻绝网络连接 EFAULT:内存空间访问出错 EINTR:操作被信号中断 EINVAL:参数无效 ENOMEM:内存不足 ENOTCONN:与面向连接关联的套接字尚未被连接上 ENOTSOCK:sock索引的不是套接字

先这样吧。感觉没什么内容,众所周知啊。。。 就当加强记忆吧。哈哈哈哈..

转载于:https://my.oschina.net/u/727148/blog/123720

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值