linux
文章平均质量分 60
稀奇古怪de
小白一枚。所发博客都是自己学习前进的笔记备份。大多都来自网上或者各类书籍整合而成
展开
-
正则表达式
参考 文档 博客 《Python 3网络爬虫开发实战》–崔庆才 测试网站 https://tool.oschina.net/regex 字符 实例 描述 [] 字符集,一个字符的集合,可匹配其中任意一个字符 | 逻辑表达式 或 ,比如 a|b代表可匹配a或者b (…) 分组,默认为捕获,即被分组的内容可以被单独取出,默认每个分组有个索引,从 1 开始,按照"("的顺序决定索引值 例子 [Pp]ython 匹配 “Python” 或 “python” ru原创 2021-08-20 10:16:28 · 119 阅读 · 0 评论 -
线程进程区别
线程进程区别 进程是动态的程序,由PCB 、程序、数据组成,是资源调度和分配的基本单位。具体独自的地址空间 线程是进程的子任务,是CPU调度和分配的基本单位,是操作系统可识别的最小执行和调度单位。共享进程的地址空间,但有独自的寄存器组,指令计数器、处理器状态、线程号,栈 一个进程可以有多个线程,各个进程间相互不影响 各个线程共享进程的资源(代码段,数据段);一个线程挂掉会导致同属于一个进程的线程都挂掉。 进程间通信方式有 管道,消息队列,信号量,共享内存。线程通信使用信号量和互斥锁 进程创建销原创 2021-08-19 13:51:32 · 109 阅读 · 0 评论 -
僵尸进程和孤儿进程
僵尸进程和孤儿进程 一个进程结束了,但是他的父进程没有等待(调用wait / waitpid)他, 那么他将变成一个僵尸进程。 但是如果该进程的父进程已经先结束了,那么该进程就不会变成僵尸进程, 因为每个进程结束的时候,系统都会扫描当前系统中所运行的所有进程, 看有没有哪个进程是刚刚结束的这个进程的子进程,如果是的话,就由Init 来接管他,成为他的父进程, 这样的进程就是下面的孤儿进程. 如果一个父进程退出,而它的一个或多个子进程还在运行,那么那些子进程将成为孤儿进程。孤儿进程将被init进程(进原创 2021-08-19 13:49:41 · 72 阅读 · 0 评论 -
sizeof(arr)
sizeof(arr) #include<stdio.h> void Func(char str_arg[100]) { printf("%d\n",sizeof(str_arg)); // 4 } int main(void) { char str[]="Hello"; printf("%d\n",sizeof(str));//6 printf("%d\n",strlen(str));// 5 char*p=str; printf("%原创 2021-08-19 13:49:09 · 487 阅读 · 0 评论 -
预编译 编译 汇编 链接
预编译 编译 汇编 链接 预编译功能 展开宏定义、文件包含、条件编译。删除注释,添加行号以便编译出错报错 #define #include #ifdef 编译 语法分析,把高级语言编译成汇编语言 汇编 将汇编语言变成机器语言 链接 将翻译成的二进制代码与需要用到库绑定在一块 ...原创 2021-08-19 13:47:42 · 109 阅读 · 0 评论 -
c const关键字
用 const 定义的变量的值是不允许改变的,即不允许给它重新赋值,即使是赋相同的值也不可以。所以说它定义的是只读变量,又称常变量。这也就意味着必须在定义的时候就给它赋初值。 如果定义的时候未初始化,我们知道,对于未初始化的局部变量,程序在执行的时候会自动把一个很小的负数存放进去。这样后面再给它赋初值的话就是“改变它的值”了,即发生语法错误。 用 const 修饰的变量,无论是全局变量还是局部变量,生存周期都是程序运行的整个过程。 全局变量的生存周期为程序运行的整个过程这个是理所当然的。 而使用.原创 2021-08-19 13:40:23 · 89 阅读 · 0 评论 -
堆和栈的区别联系
全局变量和静态变量在程序运行的整个生命周期都可以访问,而局部变量只能在声明变量的函数中才可以访问,(出了声明局部变量的函数,局部变量就会被销毁。) 参考 局部变量是在进程的栈(stack)上分配的,而全局变量和静态变量是在某个段(segment)中的 堆(heap)需要程序员自己申请,并指明大小,在c中如malloc函数 p1 = (char * )malloc(10); 但注意 p1本身是在栈中的 OS程序的内存结构 程序由BSS段、数据段、代码段 BSS段:存放程序中未初始化的或者初始原创 2021-08-19 13:35:40 · 314 阅读 · 0 评论 -
Caffe_stu04_使用draw_net.py绘图网络层
背景: 系统:ubuntu18.04 caffe:使用的sudo apt install caffe-cpu 安装的caffe 同时使用git获得caffe的源码包 git clone https://github.com/BVLC/caffe.git 错误: from ._caffe import Net, SGDSolver, NesterovSolver, AdaGradSolver, \ModuleNotFoundError: No module named ‘caffe._caffe’ 查看网上教原创 2020-06-28 18:07:26 · 233 阅读 · 0 评论 -
Caffe_stu03_小训练
参考:https://blog.csdn.net/sst___/article/details/79847697 获得数据集 使用官方的数据集 mnist 在caffe文件夹下 执行./data/mnist/get_mnist.sh 或者编写以下shell文件 #!/usr/bin/env sh # This scripts downloads the mnist data and unzips it. DIR="$( cd "$(dirname "$0")" ; pwd -P )" cd "$DIR"转载 2020-06-21 12:11:07 · 287 阅读 · 1 评论 -
首先建立起一个守护进程,然后在该守护进程中新建一个子进程,该子进程暂停 10s,然后自动退出,并由守护进程收集子进程退出的消息。在这里,子进程和守护进程的退出消息都在“/var/log/message
#include<stdio.h> #include<unistd.h> #include<stdlib.h> #include<fcntl.h> #include<sys/types.h> #include<sys/wait.h> #include<string.h> #define MAXFILE 256 #define SERVER "/var/log/messages" int main(void){ .原创 2020-05-09 18:04:55 · 1565 阅读 · 0 评论