linux程序
文章平均质量分 94
Quinn0918
在生活中,对于自己和别人,我常常会说:“人生没有白走的路,每一步都算数!”
在干部生涯中,至今还担任院学生会主席,我经常对我的干部们说“在别人之上要把别人当人,在人之下要把自己当人。”
此时此刻,我想在博客里对自己说:“就在这儿,一定要成功!”
展开
-
线程的创建、等待、终止以及属性
LWP:轻量级进程,因为Linux下的线程是用进程模拟的,所以它比线程大一点,比进程小一点在 Linux上线程函数位于 libpthread共享库中 ,因此在 编译时要加上 -lpthread选项。一、创建线程:thread->线程 id attr->线程属性(可分离,可结合(默认)) start_routine->创建的线程的执行流(即线程对应的原创 2017-05-23 18:53:38 · 527 阅读 · 0 评论 -
select服务器
selcetmakefileselect_server:select_server.c gcc -o $@ $^.PHONY:cleanclean: rm -f select_serverselect_server.c#include <stdio.h>#include <sys/select.h>#include <sys/types.h>#include <netin原创 2017-07-31 15:32:33 · 1197 阅读 · 0 评论 -
linux环境下实现进度条以及shell脚本实现彩色进度条
在linux环境下,在配置好vim以后,写的进度条的程序 8 #include 9 #include 10 11原创 2017-04-07 22:47:52 · 1129 阅读 · 0 评论 -
shell脚本
shell脚本()单括号和“反引号的区别注意:编写shell脚本时,定义变量时不加$,使用时要加$,用以区别字符串。首先,我们来看一个例子#!/bin/basha=1b=2c=`date "+%Y-%m-%d"`echo $cc=$(date "+%Y-%m-%d") echo $原创 2017-08-03 13:08:09 · 1040 阅读 · 0 评论 -
TCP->多进程服务器->多进程服务器->线程池
TCP流式套接字makefile 1 2 .PHONY:all 3 all:tcp_client tcp_server 4 5 tcp_client:tcp_client.c 6 gcc -o $@ $^ -stat原创 2017-07-31 14:58:32 · 988 阅读 · 0 评论 -
信号的捕捉与模拟实现sleep函数
信号的捕捉:如果信号的处理动作是用户自定义函数,在信号递达时就调用这个函数,这称为捕捉信号。 信号的处理有三种方式。 那么它是在什么时候处理信号的呢? 我们来看一张图。 0,一张图,两半,上为用户态(运行态),下面为内核态(管理态)。 1, 上图为信号的捕捉,处理流程。 2,图中3,4 是为了处理用户自定义的句柄。 3,图中有4个内核与用户的切换。 4,用户处理信号的时机:从内核原创 2017-06-15 16:15:47 · 766 阅读 · 0 评论 -
基于单链表、环形队列(并发有锁)的多线程生产者消费者模型
在这之前的我已经介绍过生产者消费者模型,不懂的可以下跳地址: http://blog.csdn.net/quinn0918/article/details/728259921、环形缓冲区缓冲区的好处,就是空间换时间和协调快慢线程。缓冲区可以用很多设计法,这里说一下环形缓冲区的几种设计方案,可以看成是几种环形缓冲区的模式。设计环形缓冲区涉及到几个点,一是超出缓冲区大小的的索引如何处理,二是如何表示缓原创 2017-06-03 22:59:25 · 2249 阅读 · 0 评论 -
守护进程
一、什么是守护进程1、守护进程的引入 在现实生活中, 许多大型的软件或服务器必须保证7*24小时(一周7天,一天24小时)无障碍的运行,例如淘宝网、百度搜索引擎、支付宝等等,那么像这样一种要一直运行的程序怎么实现呢?究其本质其实就是我们的守护进程。2、守护进程的定义 守护进程也称精灵进程(Daemon),是运行在后台的一种特殊进程。它独立于控制终端并且周期性地执行某种任务或等待处理某些发生的原创 2017-06-18 14:56:47 · 920 阅读 · 0 评论 -
linux进程通信之信号量、共享内存
这篇文章将讲述别一种进程间通信的机制——信号量。注意请不要把它与之前所说的信号混淆起来,信号与信号量是不同的两种事物。有关信号的更多内容,可以阅读我的另一篇文章:Linux进程间通信——使用信号。下面就进入信号量的讲解。一、什么是信号量为了防止出现因多个程序同时访问一个共享资源而引发的一系列问题,我们需要一种方法,它可以通过生成并使用令牌来授权,在任一时刻只能有一个执行线程访问代码原创 2017-05-21 11:29:54 · 696 阅读 · 0 评论 -
阻塞信号
一,信号在内核中的表示1,在此之前,必须先了解几个概念: 信号递达(Delivery):实际执行信号处理的动作。 信号未决(Pending):信号从产生到递达之间的状态。 信号阻塞(Block):被阻塞的信号产生时将保持在未决状态,直到 进程解除对此信号的阻塞,才 执行递达的动作。注意:信号阻塞和信号忽略是不同的。只要信号被阻塞就不会递达,除非解除阻塞,而忽略是在递达之原创 2017-06-05 12:54:13 · 832 阅读 · 0 评论 -
使用gdb和core dump如何快速定位到段错误
这篇文章主要介绍的就是在产生段错误时如何快速定位到错误的位置? 一.一个简单的关于段错误的实例 [cpp] view plain copy#include #include void handler(int sign) { printf("pid is %d,signnum is %d\n"原创 2017-06-05 12:24:19 · 5007 阅读 · 0 评论 -
linux进程通信之消息队列
下面来说说如何用不用消息队列来进行进程间的通信,消息队列与命名管道有很多相似之处。有关命名管道的更多内容可以参阅我的另一篇文章:Linux进程间通信——使用命名管道一、什么是消息队列消息队列提供了一种从一个进程向另一个进程发送一个数据块的方法。 每个数据块都被认为含有一个类型,接收进程可以独立地接收含有不同类型的数据结构。我们可以通过发送消息来避免命名管道的同步和阻塞问题。但是消转载 2017-05-18 10:18:37 · 460 阅读 · 0 评论 -
管道容量以及管道底层缓冲区如何组织
一.管道容量:管道容量分为pipi capacity 和 pipe_buf .这两者的区别在于pipe_buf定义的是内核管道缓冲区的大小,这个值的大小是由内核设定的,这个值仅需一条命令就可以查到;而pipe capacity指的是管道的最大值,即容量,是内核内存中的一个缓冲区。pipe_buf: 命令:ulimit -a在终端输入该命令就会出现如下一表:管道容原创 2017-05-18 09:57:21 · 3515 阅读 · 0 评论 -
poll->epoll服务器
pollmakefilemypoll:mypoll.c gcc -o $@ $^.PHONY:cleanclean: rm -f mypollmypoll#include <stdio.h>#include <poll.h>int main(){ struct pollfd ev; ev.fd = 0; ev.events = POLLIN;原创 2017-07-31 15:36:38 · 1075 阅读 · 0 评论