![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Linux程序设计
心中有爱_眼里有光
一个美好的未来靠双手打造
独学而无友则孤陋而寡闻,不闭门造车,分享让交流更方便让进步更快,
一点一滴的积累汇成大海,
展开
-
linux读写锁
读写锁是"写模式加锁"时, 解锁前,所有对该锁加锁的线程都会被阻塞。 读写锁是"读模式加锁"时, 如果线程以读模式对其加锁会成功;如果线程以写模式加锁会阻塞。 读写锁是"读模式加锁"时, 既有试图以写模式加锁的线程,也有试图以读模式加锁的线程。那么读写锁会阻塞随后的读模式锁请求。优先满足写模式锁。读锁、写锁并行阻塞,写锁优先级高...原创 2020-06-10 09:34:27 · 492 阅读 · 0 评论 -
僵尸进程的坏处和避免
僵尸进程的危害由于子进程的结束和父进程的运行是一个异步过程,即父进程永远无法预测子进程 到底什么时候结束. 那么不会因为父进程太忙来不及wait子进程,或者说不知道 子进程什么时候结束,而丢失子进程结束时的状态信息呢? 不会.因为UNIX提供了一种机制可以保证 只要父进程想知道子进程结束时的状态信息, 就可以得到. 这种机制就是: 在每个进程退出的时候,内核释放该进程所有的资源,包括打开的文件,占用的内存等. 但是仍然为其保留一定的信息(包括进程号the process ID,退出状态the termin原创 2020-06-09 14:56:51 · 583 阅读 · 0 评论 -
socket编程学习
1 setsockopt SO_REUSEADDR:端口释放一般2分钟后才能再用,设置后可以立即再用。2setsockopt SO_REUSEPORT:支持多进程多线程重复捆绑同一个端口,提高服务器性能。3 ioctl FIONBIO:设置为非阻塞模式.原创 2020-06-09 14:47:43 · 118 阅读 · 0 评论 -
I/O多路复用技术
1 设置为非阻塞的I/O函数(在读不到数据或者写入缓冲区满时不等待直接返回),然后轮询。O_NONBLOCKfcntl(SockFd, F_SETFL, O_NONBLOCK);2 每一路I/O都用一个线程使用阻塞I/O函数进行读写。2 poll、select。多路fd都没有可读时进入阻塞,不耗cpu,有时再唤醒线程返回,然后去读。...原创 2020-06-09 14:31:50 · 154 阅读 · 0 评论 -
函数使用的安全性
1 线程安全函数多线程编程时由于系统调度,函数执行一半可能调度到别的线程去又调用这个函数执行。如果这个函数里有全局变量,就导致了两个线程的函数的执行结果可能非预期。需加锁,对于全局变量、系统资源等。2 可重入函数...原创 2020-06-09 11:29:48 · 306 阅读 · 0 评论 -
socket server client的读写实现方式
1 读readrecvmsgrecvfrom2 写sendsendtosendmsg原创 2020-06-09 11:26:17 · 302 阅读 · 0 评论 -
shell 命令编码执行的方式
1 popenpfd = popen("cmd","r");fread(buff, 1, MAX, pfd);plcose(pfd);2 execlpid = fork;if(pid = 0){ execl("/bin/ls", "-l", NULL);//去执行新的可执行文件 替换当前进程。只有执行失败才会返回。}3 systemsystem("ls -l");...原创 2020-06-09 11:23:19 · 536 阅读 · 0 评论