![](https://img-blog.csdnimg.cn/20201014180756757.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Linux学习历程
文章平均质量分 84
清酒。233
Hello World!
展开
-
111.连接已终止的线程、线程分离、线程取消
功能:和一个已经终止的线程进行连接回收子线程的资源这个函数是阻塞函数,调用一次只能回收一个子线程参数:thread:需要回收的子线程的IDretval: 接收子线程推出时的返回值返回值:0 成功非0 失败,返回错误号这里将在child id打印之后,睡眠3s才会打印回收子线程资源成功。原创 2024-01-10 10:34:51 · 568 阅读 · 0 评论 -
110.线程(创建、终止)
◼ 与进程(process)类似,线程(thread)是允许应用程序并发执行多个任务的一种机制。一个进程可以包含多个线程。同一个程序中的所有线程均会独立执行相同程序,且共享同一份全局内存区域,其中包括初始化数据段、未初始化数据段,以及堆内存段。(传统意义上的 UNIX 进程只是多线程程序的一个特例,该进程只包含一个线程)◼ 进程是 CPU 分配资源的最小单位,线程是操作系统调度执行的最小单位。原创 2024-01-09 14:35:04 · 394 阅读 · 0 评论 -
107.管道(有名、无名管道)
有名管道拥有管道的所有特性,之所以称之为有名是因为管道在磁盘上有实体文件, 文件类型为p ,有名管道文件大小永远为0,因为有名管道也是将数据存储到内存的缓冲区中,打开这个磁盘上的管道文件就可以得到操作有名管道的文件描述符,通过文件描述符读写管道存储在内核中的数据。不管是有血缘关系还是没有血缘关系,使用有名管道实现进程间通信的方式是相同的,就是在两个进程中分别以读、写的方式打开磁盘上的管道文件,得到用于读管道、写管道的文件描述符,就可以调用对应的read()、write()函数进行读写操作了。原创 2023-12-10 22:58:57 · 1029 阅读 · 0 评论 -
106.进程控制(结束、孤儿、僵尸进程)以及进程回收
进程控制是指在操作系统中对进程进行创建、终止、挂起、唤醒以及进程之间的同步、通信等操作的管理。原创 2023-12-08 17:08:46 · 1340 阅读 · 0 评论 -
104.进程创建
Linux中进程ID为pid_t类型,其实本质就是一个正整数,通过ps aux命令可以得到验证。pid为1的进程是Linux系统中创建的第一个进程。被调用时,操作系统会复制父进程的地址空间、文件描述符等信息,创建一个全新的子进程。父进程和子进程之间的区别在于,是一个用于在 Unix 和类 Unix 操作系统上创建新进程的系统调用。被调用时,它会创建一个当前进程的副本,这个副本称为子进程,而调用。原创 2023-12-07 21:48:13 · 462 阅读 · 0 评论 -
103.进程概述
并行是指系统同时执行多个任务,即在同一时刻,多个指令或任务在多个处理单元上同时执行。原创 2023-12-06 23:04:17 · 822 阅读 · 0 评论 -
102.套接字-Socket网络编程4(TCP通信流程)
这个函数是一个阻塞函数,当没有新的客户端连接请求的时候,该函数阻塞;当检测到有新的客户端连接请求时,阻塞解除,新连接就建立了,得到的返回值也是一个文件描述符,基于这个文件描述符就可以和客户端通信了。套接字编程中,常用的套接字函数通常涵盖套接字的创建、绑定、监听、连接、发送、接收、关闭等操作。以下是一些常用的套接字函数,这些函数通常在C语言的。函数接受客户端的连接请求,该函数会阻塞程序直到有客户端连接进来。函数将套接字与特定的IP地址和端口号绑定。函数关闭服务端的套接字。函数关闭客户端的套接字。原创 2023-12-05 20:31:51 · 1041 阅读 · 0 评论 -
101.套接字-Socket网络编程3
Socket套接字的目的是将TCP/IP协议相关软件移植到UNIX类系统中。设计者开发了一个接口,以便应用程序能简单地调用该接口通信。这个接口不断完善,最终形成了Socket套接字.Linux系统采用了Socket套接字,因此,Socket接口就被广泛使用,到现在已经成为事实上的标准。与套接字相关的函数被包含在中。通过上面的描述可知,套接字对于程序员来说就是一套网络通信的接口,使用这套接口就可以完成网络通信。和。。原创 2023-12-01 18:25:37 · 1320 阅读 · 0 评论 -
99.套接字-Socket网络编程2 (网络协议)
网络协议就是一组网络规则的集合,是我们共同遵守的约定或标准。常见的协议:◼ HTTP:超文本传输协议◼ FTP: 文件传输协议◼ TELNET : 是 internet 远程登陆服务的标准协议。◼ TCP : 传输控制协议(TCP,Transmission Control Protocol)是一种面向连接的、可靠的、基于字节流的传输层通信协议◼ UDP :用户数据报协议◼ IP : Internet Protocol 简称 IP,又译为网际协议或互联网协议。原创 2023-11-30 19:33:25 · 955 阅读 · 0 评论 -
98.套接字-Socket网络编程1(基础概念)
OSI模型,也称为 ISO 模型,是一个由国际标准化组织(ISO)制定的概念性网络体系结构,用于定义和理解计算机网络中不同层次之间的交互。该模型划分了网络功能到七个不同的抽象层次,每个层次执行特定的功能,并且层次之间通过定义好的接口进行通信。知名端口的范围是 0 到 1023,它们通常与常见的服务关联,例如 HTTP(端口 80)、HTTPS(端口 443)、FTP(端口 21)等。端口的概念是在传输层(通常是 TCP 或 UDP 协议)中定义的。在传输层,端口与 IP 地址一起用于唯一标识网络中的进程。原创 2023-11-30 15:40:58 · 1445 阅读 · 0 评论 -
92.Linux的僵死进程以及处理方法
僵死进程是指一个子进程在父进程之前结束,但父进程没有正确地等待(使用wait或waitpid等系统调用)来获取子进程的退出状态。当一个进程结束时,它的退出状态会一直保存,直到父进程通过适当的系统调用来获取它。如果父进程没有获取子进程的退出状态,那么子进程就会变成僵死状态。我们的程序在退出的时候:return 0,exit(0),之类的,这个0就是退出码,状态信息,这个东西存储在当前进程的PCB中,会有一个整型值来存储退出码。原创 2023-11-16 17:09:49 · 256 阅读 · 0 评论 -
88.Linux系统下关于fork的经典练习
输出6个A 根据代码段仔细执行,注意for循环的i的值即可得出答案。原创 2023-11-11 10:18:23 · 93 阅读 · 0 评论 -
86.Linux系统下复制进程fork(逻辑地址和物理地址)
在父子进程的情况下,子进程的物理地址通常会与父进程的不同,因为它们拥有各自的内存空间。原来父进程的pid是5255,子进程是5256,然后接下来把父进程的实体复制一份给子进程,这样,系统中就多出这么一个子进程了。,所以说,哪个进程的fork的返回值是0,这个进程就是子进程,因为fork之后,虽然父子进程执行的代码是同一套,但是有时候我们想让父进程和子进程做不同的事情,我们就写个判断“子进程执行的代码和父进程是一模一样的,父进程做什么,子进程就做什么,唯一不同的是fork的返回值不同。原创 2023-11-06 22:55:45 · 138 阅读 · 0 评论 -
72.Linux系统下printf函数的输出问题
直接将每个字符或字节立即写入到输出设备(如终端或文件)可能会导致频繁的系统调用和磁盘/网络 I/O 操作,这在性能上是昂贵的。如果输出是写入磁盘文件或通过网络发送的,那么频繁的写入可能会导致较低的效率,因为磁盘和网络 I/O 操作通常比内存操作慢得多。通过将输出存储在内存中并按块写入,可以减少实际的物理 I/O 操作,提高效率。缓冲可以将小块输出组合成较大的块,以提供更连贯和可读性更强的输出。将输出合并到较大的块中可以减少磁盘上的碎片化,这有助于提高磁盘的寿命和性能。在 Linux 下,原创 2023-09-19 19:00:24 · 245 阅读 · 0 评论 -
67.计算机的基本组成
数据总线的宽度决定了计算机能够同时传输的位数,通常以位数(如8位、16位、32位、64位等)来衡量。地址总线的宽度决定了CPU可以寻址的内存或设备的数量。它是整个计算机系统的控制中心,它指挥计算机各部分协调地工作,保证计算机按照预先规定的目标和步骤有条不紊地进行操作及处理。也叫算数逻辑单元,完成对数据的各种常规运算,如加减乘除,也包括逻辑运算,移位,比较等。把人所熟悉的信息如,图片,声音,文字,转换为计算机能够识别的信息存储起来。计算机能够执行的全部指令的集合称为该计算机的指令系统。由一条一条的指令构成。原创 2023-09-12 19:38:52 · 126 阅读 · 0 评论 -
65.Linux系统上库文件的生成与使用
库是一组预先编译好的方法的集合。Linux系统存储的库的位置一般在:/lib 和 /usr/lib.在 64 位的系统上有些库也可能被存储在/usr/lib64 下。库的头文件一般会被存储在/usr/include 下或其子目录下。库有两种,一种是静态库,其命令规则为 libxxx.a,一种是共享库。原创 2023-09-08 18:53:33 · 93 阅读 · 0 评论 -
61.linux系统上c程序的编译与调试
对于在Linux系统上编译和调试C程序,首先,需要确保已经安装了合适的编译器。在大多数Linux发行版中,常用的C编译器是GCC。原创 2023-08-30 00:36:37 · 600 阅读 · 0 评论 -
56.linux 进程管理命令和用户管理命令
每一行代表一个用户,以冒号分隔不同的字段,如用户名、加密密码、用户ID、用户组ID、用户描述、主目录和默认shell等。此外,删除用户后,相关的文件、进程和权限也会受到影响。在大多数系统中,实际的加密密码会存储在此文件中,以保护用户密码的安全性。用于向进程发送信号,常用于终止进程,通过发送不同的信号,你可以控制进程的行为,例如终止、重新启动等.界面中,你可以键入一些命令来进行特定的操作,如切换到不同的显示模式、设置更新间隔等。列出了当前系统中运行的进程,包括每个进程的进程ID、CPU 使用率、内存占用等。原创 2023-08-17 18:09:59 · 381 阅读 · 0 评论 -
53.Linux day03 文件查看命令,vi/vim常用命令
今天进行了新的学习。原创 2023-08-15 21:31:33 · 2114 阅读 · 0 评论 -
47.Linux学习day01 基础命令详解1
今天正式学习了linux的一些基础操作和基础知识,以及linux和windows的区别。原创 2023-08-05 15:51:26 · 151 阅读 · 0 评论 -
52.Linux学习day02 基础命令详解2
要切换到的目标用户的用户名。如果没有指定用户名,则默认切换到超级用户(root)。命令用于找到指定目录下的所有文件,然后通过管道将文件名传递给。:可以为用户提供关机前的警告信息,通常用于向用户说明关机原因。命令,你可以执行系统的重启操作。命令支持各种选项,用于控制搜索的行为和输出格式。:要搜索的文本模式,可以是字符串或正则表达式。这将在5分钟后重启系统,并向用户显示警告信息。命令来安全地关闭系统。可以是绝对时间(例如。:要将源文件或目录复制到的目标路径。:要将源文件或目录移动到的目标路径。原创 2023-08-13 18:02:28 · 154 阅读 · 0 评论