
linux-C-学习
zhangyuge1994
路漫,修远,上下求索。
展开
-
线程池与cp命令的实现
用Linux C完成shall命令cp的实现 在复制大量文件时,当遇到大量的或较大的文件时,使用单进程单线程进行文件复制效率比较低下,而使用线程池能很好的提高效率。 思路:1、初始化线程池2、如果需要复制文件则直接复制,如果需要复制文件夹则往下3、遍历文件夹,复制内容4、复制内容任务加入任务链表线程池原创 2016-01-18 19:52:14 · 1419 阅读 · 1 评论 -
linux通过信号进程间通信实例理解
我们知道sigaction函数如下:int sigprocmask(int how, const sigset_t *set, sigset_t *oldset);其中 signum 有如下3种 均针对oldact而言: SIG_BLOCK //增加 SIG_UNBLOCK //删除 SIG_SETMASK //先清空进程阻塞集号,再增加其中结构体sigacti原创 2016-01-12 08:48:33 · 410 阅读 · 0 评论 -
进程间通信 内存共享信号量实例理解
申请内存:int shmget(key_t key, size_t size, int shmflg);其中key为钥匙,两进程通过同一个钥匙找到内核中的共享内存,可通过key_t ftok(const char *pathname, int proj_id)得到key,也可通过强制转换自行制定数值。 size为申请共享内存空间的大小(B) shmflg为标志 返回值为共享内存的标示符。内存映原创 2016-01-12 19:52:53 · 402 阅读 · 0 评论 -
Linux消息队列与线程实例理解
相较于进程,线程不仅拥有进程的并发性,相互独立等特点,更有占用资源较少,效率高等特点。创建线程 int pthread_create(pthread_t *thread, const pthread_attr_t *attr,void *(*start_routine) (void *), void *arg);其中thread为线程ID地址 attr 为属性设置 start_routine原创 2016-01-13 20:23:11 · 3633 阅读 · 0 评论 -
TCP与UDP协议socket函数实例理解
socket 函数int socket(int domain, int type, int protocol)返回值: 非负描述符为成功,-1则出错 domain: 指明的是网络层协议族/域,通常AF_INET、AF_INET6、AF_LOCAL等 type: 套接口类型,主要SOCK_STREAM、SOCK_DGRAM、SOCK_RAW protoc原创 2016-02-15 11:54:23 · 698 阅读 · 0 评论 -
线程、互斥锁与条件变量实例理解
互斥锁:初始化进程锁:int pthread_mutex_init(pthread_mutex_t *restrict mutex,const pthread_mutexattr_t *restrict attr);其中 mutex 为锁号 attr为属性摧毁互斥锁: int pthread_mutex_destroy(pthread_mutex_t *mutex);加锁与解锁:int pthre原创 2016-01-15 08:50:55 · 393 阅读 · 0 评论 -
UDP广播实例理解
发送端:#define MAXSIZE 80void usage(const char *info){ printf("Usage: %s <srv PORT>\n", info); exit(0);}int main(int argc, char *argv[]){ if(argc != 2) usage(argv[0]); int sock原创 2016-02-18 09:04:27 · 539 阅读 · 0 评论