![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Linux相关
Linux服务器开发相关知识
cccccccoding.
这个作者很懒,什么都没留下…
展开
-
UNIX 环境高级编程读书笔记(1)
在Liunx系统编程中,经常会出现或多或少的困惑,虽然基本大部分会用,但是可能感觉还是因为对于一些概念性的东西了解的不够深入,因此重新读一遍APUE,从头梳理一遍知识点。这篇总结博客是大概暑假的时候就准备看书总结了,但是这段时间因为个人的一些原因导致状态很差,最近感觉调整的好一些了,因此决定用博客来记录自己的读书笔记,一是为了熟练的使用,自己能动手敲巩固一遍的话效果可能更好,二是为了明年的实习(假如导师放实习的话- -。那就直接从第三章文件I/O开始了。如果存在问题的话,欢迎指出!1.文件I/O1.原创 2021-12-01 21:37:15 · 634 阅读 · 0 评论 -
Linux系统编程Day01
1.Linux常见目录介绍 /:根目录,一般根目录下只存放目录,在Linux下有且只有一个根目录。所有的东西都是从这里开始。当你在终端里输入“/home”,其实是在告诉电脑,先从/(根目录)开始,再进入到home目录。 /bin: /usr/bin: 可执行二进制文件的目录,如常用的命令ls、tar、mv、cat等。 /boot:放置linux系统启动时用到的一些文件,如Linux的内核文件:/boot/vmlinuz,系统引导管理器:/boot/grub。 /dev:存放linux系原创 2021-03-01 18:43:57 · 127 阅读 · 0 评论 -
Linux系统编程Day06
1.进程状态1.1 孤儿进程 父进程运行结束,但子进程还在运行(未运行结束)的子进程就称为孤儿进程 每当出现一个孤儿进程的时候,内核就把孤儿进程的父进程设置为 init ,而 init 进程会循环地 wait() 它的已经退出的子进程。#include<stdio.h>#include<string.h>#include<stdlib.h>#include<unistd.h>int main(){ pid_t pid =原创 2021-03-07 17:09:24 · 106 阅读 · 0 评论 -
Linux系统编程Day02
1.Linux基础命令1.1 grep命令 Linux系统中grep命令是一种强大的文本搜索工具,grep允许对文本文件进行模式查找。如果找到匹配模式, grep打印包含模式的所有行。grep一般格式为: grep [-选项] ‘搜索内容串’ 文件名在grep命令中输入字符串参数时,最好引号或双引号括起来。例如:grep ‘a ’1.txt。常用选项说明: 选项 含义 -v 显示不包含匹配文本的所有行(相当于求反) -n 显示匹配行及行号 -i 忽略大小原创 2021-03-02 18:42:30 · 101 阅读 · 0 评论 -
Linux系统编程Day08
1.终端的概念 进程中,控制终端是保存在PCB中的信息,而fork会复制PCB中的信息,因此由Shell进程启动的其它进程的控制终端也是这个终端。 默认情况下(没有重定向),每个进程的标准输入、标准输出和标准错误输出都指向控制终端,进程从标准输入读也就是读用户的键盘输入,进程往标准输出或标准错误输出写也就是输出到显示器上。 在控制终端输入一些特殊的控制键可以给前台进程发信号,例如Ctrl+C表示SIGINT,Ctrl+\表示SIGQUIT。 函数说明: #include <un原创 2021-03-13 16:31:53 · 113 阅读 · 0 评论 -
Linux系统编程Day04
1.系统调用1.1 什么是系统调用 系统调用,顾名思义,说的是操作系统提供给用户程序调用的一组“特殊”接口。用户程序可以通过这组“特殊”接口来获得操作系统内核提供的服务,比如用户可以通过文件系统相关的调用请求系统打开文件、关闭文件或读写文件,可以通过时钟相关的系统调用获得系统时间或设置定时器等。 从逻辑上来说,系统调用可被看成是一个内核与用户空间程序交互的接口——它好比一个中间人,把用户进程的请求传达给内核,待内核把请求处理完毕后再将处理结果送回给用户空间。1.2 系统调用的实现原创 2021-03-04 17:05:02 · 183 阅读 · 2 评论 -
Linux系统编程Day07
1.匿名映射实现父子进程通信 通过使用我们发现,使用映射区来完成文件读写操作十分方便,父子进程间通信也较容易。但缺陷是,每次创建映射区一定要依赖一个文件才能实现。 通常为了建立映射区要open一个temp文件,创建好了再unlink、close掉,比较麻烦。 可以直接使用匿名映射来代替。 其实Linux系统给我们提供了创建匿名映射区的方法,无需依赖一个文件即可创建映射区。同样需要借助标志位参数flags来指定。 使用MAP_ANONYMOUS (或MAP_ANON)。 int *p =原创 2021-03-11 19:19:33 · 104 阅读 · 0 评论 -
Linux系统编程Day09
1.互斥锁1.1 同步与互斥概述 现代操作系统基本都是多任务操作系统,即同时有大量可调度实体在运行。在多任务操作系统中,同时运行的多个任务可能: 1.都需要访问/使用同一种资源. 2.多个任务之间有依赖关系,某个任务的运行依赖于另一个任务 这两种情形是多任务编程中遇到的最基本的问题,也是多任务编程中的核心问题,同步和互斥就是用于解决这两个问题的。 互斥:是指散步在不同任务之间的若干程序片断,当某个任务运行其中一个程序片段时,其它任务就不能运行它们之中的任一程序片段,只能等到该任务运行完这原创 2021-03-14 17:38:59 · 57 阅读 · 0 评论 -
Linux系统编程Day05
1.文件操作1.1 fcnlt函数#include <unistd.h>#include <fcntl.h>int fcntl(int fd, int cmd, ... /* arg */);功能:改变已打开的文件性质,fcntl针对描述符提供控制。参数: fd:操作的文件描述符 cmd:操作方式 arg:针对cmd的值,fcntl能够接受第三个参数int arg。返回值: 成功:返回某个其他值 失败:-1 fcnt原创 2021-03-05 20:39:02 · 160 阅读 · 0 评论 -
Linux系统编程Day03
1. GCC编译器1.1 GCC工作流程和常用选项 gcc编译器从拿到一个c源文件到生成一个可执行程序,中间一共经历了四个步骤: 1.预处理(生成.i文件 即gcc -E test.c -o test.i) 2.编译(生成.s文件 即gcc -S test.i -o test.s) 3.汇编(生成.o文件 即gcc -c test.s -o test.o) 4.链接(生成可执行程序 gcc test.o -o test) 注:如果不加-o test 会自动生成一个可执行a.out文件原创 2021-03-03 20:18:22 · 159 阅读 · 1 评论