liunx
文章平均质量分 70
Memory逝言
见习程序员
展开
-
Linux系统下find(查找)命令的使用方法
Linux系统下find(查找)命令的使用方法在Linux下有相当优异的查找命令。通常有两个:locate 和 find。 1. 首先讲下locate命令,该命令使用很简单,直接在后面输入“文件的部分名称”后即可得到结果。范例一:找出系统中所有与 killer.c 相关的文件名[root@localhost ~]# locate killer.c/home/killer/kille原创 2017-03-29 20:52:39 · 716 阅读 · 1 评论 -
linux之信号屏蔽pending
一、信号的三种表示:1)信号递达(Delivery):实际执行信号的处理动作 2)信号未决(Pending):信号从产生到递达之间的状态 3)进程可以选择阻塞(Block )某个信号。被阻塞的信号产生时将保持在未决状态,直到进程解除对此信号的阻塞,才 执行递达的动作。 注:阻塞和忽略是不同的,只要信号被阻塞就不会递达,而忽略是在递达之后 可选的⼀种处理动作。二、信号在内存中的表示图原创 2017-06-30 22:25:38 · 644 阅读 · 0 评论 -
LINUX之死锁
一 死锁的概念 死锁是指多个进程因竞争资源而造成的一种僵局(互相等待),若无外力作用,这些进程都将无法向前推进。 最简单、最好构造的死锁就是下图这种场景了。 说明: 线程1已经成功拿到互斥量1,正在申请互斥量2,而同时在另一个CPU上,线程2已经拿到了互斥量2,正在申请互斥量1。彼此占有对方正在申请的互斥量,结局就是谁也没有办法拿到想要的互斥量,于是就发生了死锁现象。二 死锁产原创 2017-06-21 21:31:13 · 299 阅读 · 0 评论 -
LINUX线程
一, 线程的概念<1> 线程,又是被称为轻量级进程(Lightweight Process LWP),是操作系统或进程调度的最小单位。是在进程内部(地址空间)执行的。每一个程序都至少有一个线程,若程序只有一个线程,那么就是程序本身。 实际上,在Linux下没有真正意义上的线程,它是由进程模拟出来的。 由于同一进程的多个线程共享同一地址空间,因此代码和数据都是共享的,如果定义一个函数,在各线程中都原创 2017-06-07 14:43:10 · 321 阅读 · 0 评论 -
linux环境下的gcc
一. liunx系统基本命令在liunx环境下,有很多基本命令,下面带领大家认识一下常见的命令。ls命令 ls命令 // list 列出当前文件夹的所有文件-l :列出长数据串,包含文件的属性与权限数据等 -a :列出全部的文件,连同隐藏文件(开头为.的文件)一起列出来(常用) -d :仅列出目录本身,而不是列出目录的文件数据 -h :将文件容量原创 2017-04-25 17:45:43 · 497 阅读 · 0 评论 -
Linux系统下简易进度条的实现
在我们安装软件或打开游戏时,会看到进度条的身影。今天我们就来在linux下实现一个简易的进度条1 . 在任意一个目录下,touch jdt.c 文件 vi jdt.c 2. 按 ZZ 退出,使用 gcc jdt.c 命令,执行 ./a.out原创 2017-04-08 11:47:11 · 449 阅读 · 0 评论 -
使用gdb调试多进程、多线程程序
使用gdb调试多进程程序结果如下:使用gdb调试多线程程序结果如下:原创 2017-07-21 08:47:05 · 477 阅读 · 0 评论 -
select服务器的实现
select函数是来实现多路I/O复用输入/输出模型。比纯粹的阻塞I / O模型更具有实用性,因为程序句柄会停在select这里等待,直到被监视的文件句柄至少有一个发生了状态改变。select函数的功能和调用顺序使用select函数时可以将多个文件描述符集中到一起统一监视,项目如下:1、是否存在套接字接受数据?2、无需阻塞传输数据的套接字有那些?3、那些套接字发生了异常?select的函数调用方法原创 2017-08-01 11:26:45 · 1091 阅读 · 0 评论 -
Linux软链接和硬链接
文件都有文件名与数据,在 Linux 上被分成两个部分:用户数据 (user data) 与元数据 (metadata)。用户数据,即文件数据块 (data block),数据块是记录文件真实内容的地方;而元数据则是文件的附加属性,如文件大小、创建时间、所有者等信息。在 Linux 中,元数据中的 inode 号(inode 是文件元数据的一部分但其并不包含文件名,inode 号即索引节点号)才是文原创 2017-08-02 11:56:20 · 404 阅读 · 0 评论 -
Linux系统中的粘滞位
> 前言粘滞位(Stickybit),或粘着位,是Lunix系统权限的一个旗标。最常见的用法在目录上设置粘滞位,如此以来,只有目录内文件的所有者或者root才可以删除或移动该文件。如果不为目录设置粘滞位,任何具有该目录写和执行权限的用户都可以删除和移动其中的文件。实际应用中,粘滞位一般用于/tmp目录,以防止普通用户删除或移动其他用户的文件。原创 2017-03-31 16:55:05 · 324 阅读 · 0 评论 -
网络端口分类调研
一.端口的概念在网络技术中,端口(Port)包括逻辑端口和物理端口两种类型。物理端口指的是物理存在的端口,如ADSL Modem、集线器、交换机、路由器上用 于连接其他网络设备的接口,如RJ-45端口、SC端口等等。逻辑端口是指逻辑意义上用于区分服务的端口,如TCP/IP协议中的服务端口,端口号的范围从0到65535,比如用于浏览网页服务的80端口,用于FTP服务的21端口等。由于物理端口和逻辑端口原创 2017-07-15 17:27:50 · 389 阅读 · 0 评论 -
信号之myseep函数
alarm函数调用alarm函数可以设定一个闹钟,也就是告诉内核在seconds秒之后给当前进程发SIGALRM信号, 该信号的默认处理动作是终止当前进程。 这个函数的返回值是0或者是以前设定的闹钟时间还余下的秒数。pause函数pause函数使调用进程挂起直到有信号递达。如果信号的处理动作是终止进程,则进程终止,pause函数没有机会返回;如果信号的处理动作是忽略,则进程继续处于挂起状态,paus原创 2017-07-05 20:28:13 · 392 阅读 · 0 评论 -
Centos 7系统下的vim配置
对于Linux初学者来说,vim是不可或缺的编辑器。但是,其原始风格太过于单调,且不方便我们源代码的书写,因此,对vim编辑器的配置就尤为重要。 1. 在普通用户或超级用户下输入命令 : ls -a 查看有无 .vimrc文件,如果没有就使用命令: touch .vimrc 创建一个文件 2. vi .vimrc 开始进行一系列配置 待配置完成后,按 wq!保存原创 2017-04-08 11:37:44 · 11536 阅读 · 4 评论 -
linux进程
一、进程的位置首先,Linux下C程序⽣成主要由四个步骤组成:预编译、编译、汇编、链接。当程序执行时,操作系统将可执行程序复制到内存中。程序转为进程通常需要以下步骤: (1)内核将程序读⼊内存,为程序分配内存空间; (2)内核为该进程保存PID及相应的状态信息,把进程放到运行队列中等待执行。程序转化为进程后就可被操作系统的调度程序执行了。进程的内存映像是指内核在内存中如何存放可执行程序文件。在将原创 2017-04-29 20:34:06 · 247 阅读 · 0 评论 -
Linux进程描述符task_struct结构体详解
进程是处于执行期的程序以及它所管理的资源(如打开的文件、挂起的信号、进程状态、地址空间等等)的总称。注意,程序并不是进程,实际上两个或多个进程不仅有可能执行同一程序,而且还有可能共享地址空间等资源。Linux内核通过一个被称为进程描述符的task_struct结构体来管理进程,这个结构体包含了一个进程所需的所有信息。它定义在include/linux/sched.h文件中。谈到task_s原创 2017-04-12 21:35:33 · 1432 阅读 · 0 评论 -
C语言:数组的运算及sizeof(),strlen()操作符的介绍
sizeof()运算符sizeof是c语言内置运算符,以字节为单位给出指定类型的大小,其作用就是返回一个对象或者类型所占的内存字节数。 用法: 1.用于数据类型 如:sizeof(Type) 运行结果如下: 2.用于变量 sizeof(var_name)注意:sizeof操作符不能用于函数类型,不完全类型或位字段。不完全类型指具有未知存储大小的数据类型,如未知存储大小原创 2017-04-15 15:01:32 · 689 阅读 · 1 评论 -
进程间通信——消息队列
一,什么是消息队列** 消息队列(System V标准)提供了一种从一个进程向另一个进程发送一个有类型数据块的方法。每个数据块都被认为含有一个类型,接收进程可以独立地接收含有不同类型的数据结构。我们可以通过发送消息来避免命名管道的同步和阻塞问题。但是消息队列与命名管道一样,每个数据块都有一个最大长度的限制。支持双向通信。二 ,在Linux中使用消息队列1.创建新的消息队列或取得已存在的消息队列 m原创 2017-06-05 17:12:59 · 496 阅读 · 0 评论 -
进程间通信——共享内存
一, 概念 共享内存:使得多个进程可以访问同一块内存空间,是最快的可用IPC形式。是针对 其他通信机制运行效率较低而设计的。往往与其它通信机制,如信号量结合使用, 来达到进程间的同步及互斥。 二,特点 1.共享内存就是允许两个不相关的进程访问同一个逻辑内存; 2.共享内存是在两个正在运行的进程之间共享和传递数据的一种最有效的方式; 3.不同进程之间共享的内存通常安排为同一原创 2017-06-07 17:14:12 · 361 阅读 · 0 评论 -
进程间通信——信号量
一,信号量 信号量又称为信号灯,它是用来协调不同进程间的数据对象的,而最主要的应用是共享内存方式的进程间通信。本质上,信号量是一个计数器,它用来记录对某个资源(如共享内存)的存取状况。一般说来,为了获得共享资源,进程需要执行下列操作: (1) 测试控制该资源的信号量。 (2) 若此信号量的值为正,则允许进行使用该资源。进程将信号量减1。 (3) 若此信号量为0,则该资原创 2017-06-09 16:58:42 · 445 阅读 · 0 评论 -
读者-写者模型
一.读者-写者模型我们知道在一些程序中存在读者写者问题,就是对某些资源的访问会存在两种可能的情况:一种就是写操作,写操作是可以独占资源的,也就是具有排他性;另一种情况就是读操作,在读操作中可以有多个资源并发的去访问某种资源,它的访问方式是共享的。(一般由于写端操作次数少,读端操作次数多,因此写端的优先级较高)。这种模型是从对文件的读写操作中总结出的一种模型。1.在读者和写者的这种模型中,存在3种关系原创 2017-06-23 00:13:29 · 2712 阅读 · 0 评论 -
小型HTTP服务器
#include "httpd.h" void usage(const char *proc) { printf("Usage : %s [PORT]\n", proc); } static void not_found(int client) { } void print_debug(const char * msg) { #ifdef _DEBUG_原创 2017-09-07 15:44:29 · 340 阅读 · 0 评论