• linux系统编程:自己动手写一个ls命令

    时间:2022-06-23 11:17:13

    ls用于列举目录内容,要实现这个功能,毫无疑问,需要读取目录,涉及到两个api:opendir:DIR*opendir(constchar*name),传文件名,返回一个指针,指向目录序列readdir:structdirent*readdir(DIR*dirp),把opendir的返回值传过来, ...

  • Linux高并发网络编程开发——10-Linux系统编程-第10天(网络编程基础-socket)

    时间:2022-05-11 03:43:39

    在学习Linux高并发网络编程开发总结了笔记,并分享出来。有问题请及时联系博主:Alliswell_WP,转载请注明出处。10-Linux系统编程-第10天(网络编程基础-socket)在学习Linux高并发网络编程开发总结了笔记,并分享出来。有问题请及时联系博主:Alliswell_WP,转载请注...

  • Linux系统编程(24)——信号的生命周期

    时间:2022-05-05 16:16:07

     信号生命周期为从信号发送到信号处理函数的执行完毕。对于一个完整的信号生命周期(从信号发送到相应的处理函数执行完毕)来说,可以分为三个重要的阶段,这三个阶段由四个重要事件来刻画:信号诞生;信号在进程中注册完毕;信号在进程中的注销完毕;信号处理函数执行完毕。相邻两个事件的时间间隔构成信号生命周期的一个...

  • linux系统编程之进程(三):进程复制fork,孤儿进程,僵尸进程

    时间:2022-04-21 02:27:17

    本节目标:复制进程映像fork系统调用孤儿进程、僵尸进程写时复制一,进程复制(或产生)    使用fork函数得到的子进程从父进程的继承了整个进程的地址空间,包括:进程上下文、进程堆栈、内存信息、打开的文件描述符、信号控制设置、进程优先级、进程组号、当前工作目录、根目录、资源限制、控制终端等。子进程...

  • linux系统编程——信号量相关函数的使用

    时间:2022-04-05 04:54:43

    一、Posix有名信号灯1.posix有名信号灯函数  函数sem_open创建一个新的有名信号灯或打开一个已存在的有名信号灯。有名信号灯总是既可用于线程间的同步,又能用于进程间的同步。1.sem_open名称::sem_open功能:创建并初始化有名信号灯头文件:#include函数原形:sem_...

  • --系统编程-网络-tcp客户端服务器编程模型、socket、htons、inet_ntop等各API详解、使用telnet测试基本服务器功能

    时间:2022-04-03 09:28:24

    PART1基础知识1.字节序网络字节序是大端字节序(低地址存放更高位的字节),所以,对于字节序为小端的机器需要收发网络数据的场景,要对这些数据进行字节序转换。字节序转换函数,常用的有四个:很好记,n表示network,h表示host,l表示long,s表示short。 举例,htons表示将主机的二...

  • Linux系统编程——文件描述符的复制:dup()和dup2()

    时间:2022-03-22 09:40:06

    dup()和dup2()是两个非常有用的系统调用,都是用来复制一个文件的描述符,使新的文件描述符也标识旧的文件描述符所标识的文件。这个过程类似于现实生活中的配钥匙,钥匙相当于文件描述符,锁相当于文件,本来一个钥匙开一把锁,相当于,一个文件描述符对应一个文件,现在,我们去配钥匙,通过旧的钥匙复制了一把...

  • linux系统编程----统计一个目录下的普通文件个数

    时间:2022-03-16 03:06:03

    主要是为了统计linux系统下一个指定目录下面的普通文件个数,运用目录操作的一些函数,配合递归调用来实现该功能。首先介绍一下函数原型:打开一个空目录               DIR*opendir(constchar*name);               参数:目录名            ...

  • Linux系统编程之----》信号

    时间:2022-03-07 03:51:24

    1"===信号========================================================================================================================"2一.信号的概念:31.本质:4软中端;信号...

  • linux系统编程之信号(三):信号的阻塞与未决

    时间:2022-03-07 03:51:12

    一、信号在内核中的表示实际执行信号的处理动作称为信号递达(Delivery),信号从产生到递达之间的状态,称为信号未决(Pending)。进程可以选择阻塞(Block)某个信号,SIGKILL和SIGSTOP不能被阻塞。被阻塞的信号产生时将保持在未决状态,直到进程解除对此信号的阻塞,才执行递达的动作...

  • linux 系统编程之信号 test10_4.c

    时间:2022-03-07 03:51:18

    #include<stdio.h>#include<signal.h>#include<stdarg.h>#include<time.h>#include<string.h>#include<unistd.h>#include&...

  • python系统编程(六)

    时间:2022-02-20 14:38:31

    threading注意点1.线程执行代码的封装通过上一小节,能够看出,通过使用threading模块能完成多任务的程序开发,为了让每个线程的封装性更完美,所以使用threading模块时,往往会定义一个新的子类class,只要继承threading.Thread就可以了,然后重写run方法示例如下:...

  • Unix系统编程()信号:概念和概述

    时间:2022-02-14 04:26:58

    信号:基本概念这篇将一口气学完信号的基本概念,但是有很多的细节,所以篇幅较长,请做好心理准备。有以下主题:各种不同信号及其用途内核可能为进程产生信号的环境,以及某一进程向另一进程发送信号所使用的系统调用。进程在默认情况下对信号的响应方式,以及进程改变对信号响应方式的手段,特别是借助于信号处理器程序的...

  • linux系统编程之信号(二):信号处理流程(产生、注册、注销、执行)

    时间:2022-02-14 04:27:04

    对于一个完整的信号生命周期(从信号发送到相应的处理函数执行完毕)来说,可以分为三个阶段:信号诞生信号在进程中注册信号在进程中的注销信号处理函数执行1   信号诞生   信号事件的发生有两个来源:硬件来源(比如我们按下了键盘或者其它硬件故障);软件来源,最常用发送信号的系统函数是kill,raise,...

  • linux系统编程之信号(三):信号安装、signal、kill,arise讲解

    时间:2022-02-14 04:26:52

    一,信号安装如果进程要处理某一信号,那么就要在进程中安装该信号。安装信号主要用来确定信号值及进程针对该信号值的动作之间的映射关系,即进程将要处理哪个信号;该信号被传递给进程时,将执行何种操作。linux主要有两个函数实现信号的安装:signal()、sigaction()。其中signal()只有两...

  • linux系统编程之信号(四):信号的捕捉与sigaction函数

    时间:2022-02-14 04:26:46

    本文转自:http://blog.csdn.net/jnu_simba/article/details/8947410一、内核如何实现信号的捕捉如果信号的处理动作是用户自定义函数,在信号递达时就调用这个函数,这称为捕捉信号。由于信号处理函数的代码是在用户空间的,处理过程比较复杂,举例如下:1.用户程...

  • Unix系统编程()复制文件描述符

    时间:2022-01-30 10:00:20

    Bourneshell的IO冲重定向语法2>&1,意在通知shell把标准错误(文件描述符2)重定向到标准输出(文件描述符1)。因此下列命令将把标准输出和标准错误写入result.log文件。(shell按从左至右的顺序处理IO重定向语句) shell通过复制文件描述符2实现了标准错误...

  • Linux系统编程——文件描述符的复制:dup()和dup2()

    时间:2022-01-30 10:00:26

    dup()和dup2()是两个非常有用的系统调用,都是用来复制一个文件的描述符,使新的文件描述符也标识旧的文件描述符所标识的文件。这个过程类似于现实生活中的配钥匙,钥匙相当于文件描述符,锁相当于文件,本来一个钥匙开一把锁,相当于,一个文件描述符对应一个文件,现在,我们去配钥匙,通过旧的钥匙复制了一把...

  • Linux系统编程之命名管道与共享内存

    时间:2022-01-20 10:02:47

    在上一篇博客中,我们已经熟悉并使用了匿名管道,这篇博客我们将讲述进程间通信另外两种常见方式——命名管道与共享内存。1.命名管道管道是使用文件的方式,进行进程之间的通信。因此对于管道的操作,实际上还是用诸如write,read等接口实现。匿名管道应用的一个限制就是只能在具有亲缘关系(如父进程与子进程、...

  • Linux系统编程(22)——响应信号

    时间:2022-01-09 04:52:09

    进程对信号的响应进程可以通过三种方式来响应一个信号:1、忽略信号,即对信号不做任何处理,其中,有两个信号不能忽略:SIGKILL及SIGSTOP;2、捕捉信号。定义信号处理函数,当信号发生时,执行相应的处理函数;3、执行缺省操作,Linux对每种信号都规定了默认操作。注意,进程对实时信号的缺省反应是...