Linux
文章平均质量分 68
tttjp
编程积极分子~~~
展开
-
Linux中有关目录的权限和用stat查看文件时三个时间点解析
Linux中有关目录的权限和用stat查看文件时三个时间点解析原创 2017-03-19 16:05:02 · 471 阅读 · 0 评论 -
线程安全与可重入函数
线程安全的概念比较直观。一般说来,一个函数被称为线程安全的,当且仅当被多个并发线程反复调用时,它会一直产生正确的结果。 确保线程安全: 要确保函数线程安全,主要需要考虑的是线程之间的共享变量。属于同一进程的不同线程会共享进程内存空间中的全局区和堆,而私有的线程空间则主要包括栈和寄存转载 2017-08-27 15:05:10 · 304 阅读 · 0 评论 -
实现sleep函数
sleep()函数函数原型:unsigned int sleep(unsigned int seconds);函数功能: 使调用程序挂起等待seconds秒,或者直到有信号到达使之中断。函数返回值: 若程序挂起到参数所指定的时间则返回0;若有信号中断则返回剩余秒数。实现mysleep()版本1所需函数:1) int sigaction(int signo, const struct siga原创 2017-08-26 21:11:21 · 775 阅读 · 0 评论 -
基于TCP协议的简易C/S通信
通信流程一、建立连接服务器调⽤socket()、bind()、listen() 完成初始化后,调⽤accept()阻塞等待,处于监听端口的状态;客户端调⽤socket()初始化后,调⽤connect()发出SYN段并阻塞等待服务器应答;服务器应答⼀个SYN-ACK段,客户端收到后从connect()返回,同时应答⼀个ACK段,服务器收到后从accept()返回,即三次握手的过程。二、数据传输原创 2017-09-04 19:18:31 · 833 阅读 · 0 评论 -
gdb调试多进程多线程
gdb是非常强大的UNIX及UNIX-like下的程序调试工具 gdb的使用:在代码编译的时候加上-g选项在命令行输入gdb+文件名调试过程r或run:运行程序。 list/l 行号:显示文件源代码,接着上次的位置往下列,每次列10行。 list/l 函数名:列出某个函数的源代码。 s或step:进入函数调用 breaktrace(或bt):查看各级函数调⽤用及参数 inf原创 2017-08-25 22:04:13 · 417 阅读 · 0 评论 -
编写一个支持重定向的shell
什么是shell?shell是Linux的“外壳”程序,用户是通过shell与Linux kernel打交道的。shell常被称为命令行解释器。它的功能有:将用户的命令翻译给kernel处理;将kernel的处理结果翻译给用户shell自身就是一个进程,当我们在Linux下打开一个终端时,系统就把shell这个进程加载到内存中了,对于用户输入的命令,shell本身并不去原创 2017-08-22 15:32:51 · 412 阅读 · 0 评论 -
进程间通信——消息队列
消息队列的概念消息队列提供了一种从一个进程向另一个进程发送一个数据块的方法。 每个数据块都被认为是有一个类型,接收者进程接收的数据块可以有不同的类型值。我们可以通过发送消息来避免命名管道的同步和阻塞问题。消息队列与管道不同的是,消息队列是基于消息的,而管道是基于字节流的,且消息队列的读取不一定是先入先出。消息队列与命名管道有一样的不足,就是每个消息的最大长度是有上限的(MSGMAX),原创 2017-08-24 17:18:12 · 322 阅读 · 0 评论 -
模拟实现僵尸进程和孤儿进程
僵尸进程和孤儿进程的概念僵尸进程:一个子进程在其父进程没有调用wait()或waitpid()的情况下退出。这个子进程就是僵尸进程。进程在终止时,系统会回收所有内核分配给它的内存、关闭它打开的所有文件等等,但还会保留一些极少的信息,因为进程终止后有些信息对于父进程和内核还是很有用的,例如进程的ID号、进程的退出状态、进程运行的CPU时间等。父进程可以使用 wait/waitpid 等系原创 2017-08-20 23:23:04 · 380 阅读 · 0 评论 -
shell脚本编写彩色进度条
配色规则\033[0m 关闭所有属性 \033[1m 设置高亮度 \033[4m 下划线 \033[5m 闪烁 \033[7m 反显 \033[8m 消隐 \033[30m – \033[37m 设置前景色 \033[40m – \033[47m 设置背景色 \033[nA 光标上移n行 \033[nB 光标下移n行 \033[nC 光标右移n列 \原创 2017-07-18 17:24:16 · 497 阅读 · 0 评论 -
Linux下反引号``和$()的比较以及eval命令的调研
``和$()都起着命令代换的作用,Shell先执行其中的命令,然后将输出结果立刻代换到当前命令行中。分别用``和$()输出当前时间的Shell脚本如下它们的共同点是都可以命令转换,原创 2017-07-12 11:04:10 · 413 阅读 · 0 评论 -
关于crontab和crond
定时任务?顾名思义即固定一段时间执行一次的任务。crontab和crondcrontab,该词来源于希腊语chronos,原意是时间。在Linux下是一个命令,用于设置周期性被执行的指令。 crond,与crontab是不可分割的,是crontab的守护进程。原创 2017-06-30 11:49:20 · 399 阅读 · 0 评论 -
关于端口号
由于端口数量较多,为了对每个端口进行区分,将每个端口进行了编号,这就是端口号。物理端口指的是物理存在的端口,如ADSL Modem、集线器、交换机、路由器上用 于连接其他网络设备的接口,如RJ-45端口、SC端口等等。逻辑端口是指逻辑意义上用于区分服务的端口,如TCP/IP协议中的服务端口,端口号的范围从0到65535,比如用于浏览网页服务的80端口,用于FTP服务的21端口等。原创 2017-06-29 19:00:16 · 521 阅读 · 0 评论 -
守护进程以及fork两次的问题
守护进程? 守护进程也称“精灵进程”,一般而言,守护进程7*24h运行着,它不受用户登录与注销的影响。Linux中的很多系统服务进程就是守护进程。如何识别守护进程? 凡是TPGID为-1的进程都是守护进程,通常守护进程的命名以”d”结尾,表示daemon。原创 2017-06-28 19:48:00 · 552 阅读 · 0 评论 -
CRC校验
计算机网络中设计数据链路层的主要目的是采取差错检验、差错控制和流量控制等方法,将有差错的物理线路改进成无差错的数据链路。一般设计差错控制方法时常采取纠错码和检错码两种策略,纠错码能够发现并自动纠正传输差错;检错码可以发现错误,但是不能自动纠正,需通过重传机制达到纠错目的。原创 2017-06-28 14:10:32 · 3213 阅读 · 0 评论 -
简单的vim配置及插件安装
vim是Linux系统中最常用的文本编辑器,我们可以通过修改配置文件.vimrc和下载插件来定制专属自己的vim IDE。1.常规配置设置行号:在.vimrc中输入set nu即可。设置高亮:输入syntax enable、syntax on设置自动缩进:输入set autoindent、set cindent设置tab键的宽度:set tabstop=4统一缩进为4:se原创 2017-03-27 19:33:02 · 502 阅读 · 0 评论 -
Linux find指令
Linux下find命令在目录结构中搜索文件,并执行指定的操作,提供了相当多的查找条件,功能很强大。1.命令格式find pathname -options [-print -exec -ok ......]2.命令参数pathname:find命令所查找的目录路径。比如用.表示当前目录,用/来表示根目录。-print:find命令将匹配的文件输出到标准输出。-exec:f原创 2017-03-25 18:59:47 · 330 阅读 · 0 评论 -
Linux中的粘滞位
众所周知,Linux系统中umask的默认权限掩码是0022创建目录的默认权限=777-022=755,创建文件的默认权限=666-022=644。权限运算的时候我们一般都是用三位数字,那么0022中第一个数字到底代表什么呢?在Linux中,除开写、读、执行三个权限,还包括suid、sgid、sticky这三种特殊权限,而0022中第一个0即代表特殊权限位。接下来,我打算研究一下s原创 2017-03-26 19:18:45 · 325 阅读 · 0 评论 -
进程间通信——管道
一.管道容量:管道容量分为pipi capacity 和 pipe_buf .这两者的区别在于pipe_buf定义的是内核管道缓冲区的大小,这个值的大小是由内核设定的,这个值仅需一条命令就可以查到;而pipe capacity指的是管道的最大值,即容量,是内核内存中的一个缓冲区。pipe_buf: 命令:ulimit -a在终端输入该命令就会出现如下一表:管道容量 si转载 2017-08-27 15:40:28 · 434 阅读 · 0 评论