
Linux
魏尔肖
如果生命没有起伏那么何来意义
展开
-
linux stat命令三个时间详解
stat 文件或文件系统的详细信息Access: 显示的时间是我们最后一次访问的时间每次访问,修改access时间都会更新,如cat,more,而ls,stat时间都不会改变Modify: 显示的是我们最后一次修改文件内容的时间,如用vi进行修改内容Change: 显示的是我们最后一次对文件属性进行改变的时间,如用chown,chmod改变文原创 2017-02-17 21:52:53 · 1570 阅读 · 0 评论 -
TCP server的实现,和多线程,多进程服务器
socket在TCP/IP协议中,“IP地址+TCP/UDP端口号”表示唯一网络通信中的一个进程,IP地址+端口号称为socket。 注意: 字节序有大端和小端,在两台使用不同字节序的主机上通信,为了让两台主机间能正确的通信,发送端总是把字节序转成大端字节序数据后在发送,接收方知道接受的一定是大端字节序,然后根据自己的字节序进行转化就不会出错。调用函数int socket(int domain,原创 2017-07-08 23:57:26 · 8941 阅读 · 0 评论 -
线程同步的几种方式
多个线程同时访问共享数据可能会冲突。比如两个线程同时把某个全局变量增加1需要3步。1.从内存读取变量到寄存器 2.把寄存器中变量值加一 3.把结果返回给内存 不同线程的执行时间会造成结果的不同,这时候就需要线程同步:线程同步的四种方式:互斥量(mutex):引入互斥锁,得到锁的线程执行(读,修改,写)的操作,没有获得锁的线程只能等待,不能共享数据。(读,写,修改)的操作就有了原子性(要么原创 2017-07-29 14:24:49 · 6515 阅读 · 1 评论 -
多线程与多进程
原文链接 http://blog.youkuaiyun.com/lishenglong666/article/details/8557215 鱼还是熊掌:浅谈多进程多线程的选择关于多进程和多线程,教科书上最经典的一句话是“进程是资源分配的最小单位,线程是CPU调度的最小单位”,这句话应付考试基本上够了,但如果在工作中遇到类似的选择问题,那就没有这么简单了,选的不好,会让你深受其害。转载 2017-06-28 14:31:56 · 638 阅读 · 0 评论 -
ARP协议及脚本
ARP地址解析协议,即(Address Resolution Protocol),是根据IP地址获取物理地址的一个TCP/IP协议。简介主机发送信息时将包含目标IP地址的ARP请求广播到网络上的所有主机,并接收返回消息,以此确定目标的物理地址;收到返回消息后将该IP地址和物理地址存入本机ARP缓存中并保留一定时间,下次请求时直接查询ARP缓存以节约资源。地址解析协议是建立在网络中各个主机互相信任的基原创 2017-06-25 23:31:20 · 4530 阅读 · 1 评论 -
CRC校验原理
基本概念CRC即循环校验码是数据通信中最常用的一种差错校验码。信息字段的长度和校验码的长度是任意的。基本原理在K位信息码的后面加上R位校验码,整个长度是N位, N=K+R。给定一个(N,R)码,可以证明存在一个最高次幂为R的多项式G(x),根据G(x)可以生成K位信息的校验码,而G(x)叫做这个CRC码的生成多项式。校验码生成生成过程:假设发送的信息用C(X)信息码表示,将C(X)左移R位得到多项式原创 2017-06-25 15:41:40 · 3140 阅读 · 0 评论 -
多路转接-EPOLL 及简单的EPOLL服务器实现
EPOLL简介EPOLL是linux下公认的最好用的I/O就绪通知方式。 epoll是Linux内核为处理大批量文件描述符而作了改进的poll,是Linux下多路复用IO接口select/poll的增强版本,它能显着提高程序在大量并发连接中只有少量活跃的情况下的系统CPU利用率。另一点原因就是获取事件的时候,它无须遍历整个被侦听的描述符集,只要遍历那些被内核IO事件异步唤醒而加入Ready队列的描原创 2017-07-04 11:14:54 · 857 阅读 · 1 评论 -
linux守护进程介绍以及如何编写守护进程
守护进程介绍:linux中的守护进程是一种特殊进程。它独立于控制终端并且周期性的执行某种任务或等待处理某些事件的发生。 linux中大多数服务器就是守护进程实现的。例如: internet服务器中inetd, Web服务器中的http。守护进程也完成一些系统任务如作业规划进程crond。 linux启动时会启动很多系统服务进程,这些进程没有控制终端,无法直接和用户交互。其他进程都是在用户登陆时启原创 2017-06-09 14:37:14 · 1446 阅读 · 0 评论 -
linux中crond服务与crontab的编写
crond服务是一种守护进程crond服务通常被放在/etc/init.d/crond , 这样就可以在系统启动后自动启动crond服务。 Linux中的用户使用contab命令来配置corn任务。 crontab在/etc目录下面存在cron.d,cron.daily,cron.weekly,cron.monthly,cron.hourly五个目录和crontab文件。cron.d是系统自动定原创 2017-06-09 12:28:08 · 3987 阅读 · 0 评论 -
如何使用GDB调试多线程
先写一段多线程程序。 makefile 加上 -g参数生成可调式信息, 可以进行调试。 pthread不是Linux下的默认的库,也就是在链接的时候,无法找到phread库中哥函数的入口地址,于是链接会失败。在gcc编译的时候,附加要加 -lpthread参数即可解决。gdb test 进入调试需要调试的地方打下断点,run运行到断点处。r 运行到断点处,info thread可以查看被调原创 2017-06-08 17:56:18 · 2763 阅读 · 2 评论 -
如何用gdb调试多进程
如何在linux下用gdb调试多进程 1. 方法一 先写一段程序 编译时加上参数-g 才可以调试gcc tioashi.c -g -o tiaoshi 在父进程中休眠40秒时为了有足够的时间查询父进程id. 先运行程序,子进程跑完,父进程还在sleep。ps aux|grep ..查看进程id gdb开启调试,再打开一个终端,attach 进程id就原创 2017-06-08 16:38:21 · 758 阅读 · 0 评论 -
linux关于S权限和T权限的介绍
linux系统内有档案有三种身份 u:拥有者 g:群组 o:其他人这些身份对于文档又有下面权限 可以用ls -l 文件名 查看权限信息r:读权限,用户可以读取文档的内容,如用cat,more查看w:写权限,用户可以编辑文档x:该目录具有可以被系统执行的权限除了读写执行权限外系统还支持强制位(setuid和setgid)和粘滞位(sticky)setui原创 2017-02-20 22:55:02 · 20083 阅读 · 1 评论 -
linux匿名管道
linux中进程的一种通信方式——匿名管道pipe函数建立管道调用pipe函数时在内核中开辟一块缓冲区(称为管道)用于通信,它有一个读端一个写端,然后通过_pipe参数传出给用户程序两个文件描述符,_pipe[0]指向管道的读端,_pipe[1]指向管道的写端。所以管道在用户程序看起来就像一个打开的文件,通过read(_pipe[0]);或者write(_pipe[1]);向这原创 2017-03-01 18:20:17 · 399 阅读 · 0 评论 -
linux 管道的大小,缓冲,阻塞方法,以及容量
ulimit -a可以查看管道的大小,这是内核设定的为8*512byte=4kLINUX 管道实现的机制从本质上说,管道也是一种文件,但他又和一般的文件有所不同,管道可以克服使用文件进行通信的两个问题 - 限制管道的大小。实际上,管道是一个固定大小的缓冲区。在Linux中该换冲区的大小为一页,4k使得他的大小不像文件那样不加检验的增长。使用固定缓冲区也会带来问题,比原创 2017-03-09 17:54:57 · 15040 阅读 · 0 评论 -
linux 命名管道
linux进程间通信——命名管道 FIFO(命名管道)不同于匿名管道之处在于它提供⼀个路径名与之关联,以FIFO的⽂件形式存储于⽂件系统中。命名管道是⼀个设备⽂件,因此,即使进程与创建FIFO的进程不存在亲缘关系,只要可以访问该路径,就能够通过FIFO相互通信。值得注意的是,FIFO(first input first output)总是按照先进先出的原则⼯作,第⼀个被写⼊的数据将⾸先从管道原创 2017-03-01 18:50:33 · 1724 阅读 · 0 评论 -
linux 之atexit函数详解
按照ANSIC规定, 一个进程可以登记多至32个函数,这些函数由exit自动调用,我们称这些函数为终止处理程序,并用atexit函数登记它们。如果成功返回0,出错返回非0值。exit调用这些函数的顺序和它们登记时的顺序相反,同一函数被登记多次也就被调用多次。原创 2017-02-19 20:29:18 · 585 阅读 · 0 评论 -
linux vim的配置
1.在工作目录~/下用ls -a查看是否有.vimrc文件,如果没有就建立touch.vimrc新建该文件,在目录下新建目录 .vim,并进入.vim目录,建立plugin、doc、syntax三个目录 命令: $ mkdir .vim $ cd .vim $ mkdir plugin doc sy原创 2017-02-17 20:42:30 · 658 阅读 · 0 评论 -
shell 完成快速排序
学习shell中,用shell脚完成了一下快速排序原创 2017-09-05 23:04:01 · 1990 阅读 · 1 评论