Ai图片转手绘

效果展示

原图

landscape

手绘图

landscape_hand_draw

阅读全文 »

linux下gcc编译生成.out,.o,.a,.so文件

文件类型介绍

.out是可执行文件,相当于win上的exe;

.o是编译中间目标文件,相当于win上的.obj;

.a是静态库,多个.o练链接得到,用于静态链接;

.so是共享库,用于动态链接,相当于win上.dll;

阅读全文 »

C++段错误(Segmentation fault)

“段错误”(常缩写为”segfault”或”SIGSEGV”)是C++和其他编程语言中常见的运行时错误。它发生在程序尝试访问未被允许访问的内存位置时,通常是由于代码中的错误导致的。段错误通常由以下情况引起:

  1. 解引用空指针:尝试访问或修改指向内存地址0或未初始化的指针的值。
  2. 缓冲区溢出:在数组或缓冲区的边界之外写入数据,导致意外的内存访问。
  3. 使用已释放的内存:在释放或释放后访问指向对象的指针。
  4. 未初始化的变量:访问未初始化的变量的值。
  5. 栈溢出:由于过度递归或堆栈空间的过度使用。
  6. 错误的指针算术:以导致访问无效内存地址的方式操作指针。
阅读全文 »

proc目录详解

Linux系统上的/proc目录是一种文件系统,即proc文件系统。与其它常见的文件系统不同的是,/proc是一种伪文件系统(也即虚拟文件系统),存储的是当前内核运行状态的一系列特殊文件,用户可以通过这些文件查看有关系统硬件及当前正在运行进程的信息,甚至可以通过更改其中某些文件来改变内核的运行状态。

基于/proc文件系统如上所述的特殊性,其内的文件也常被称作虚拟文件,并具有一些独特的特点。例如,其中有些文件虽然使用查看命令查看时会返回大量信息,但文件本身的大小却会显示为0字节。此外,这些特殊文件中大多数文件的时间及日期属性通常为当前系统时间和日期,这跟它们随时会被刷新(存储于RAM中)有关。

为了查看及使用上的方便,这些文件通常会按照相关性进行分类存储于不同的目录甚至子目录中,如/proc/scsi目录中存储的就是当前系统上所有SCSI设备的相关信息,/proc/N中存储的则是系统当前正在运行的进程的相关信息,其中N为正在运行的进程(可以想象得到,在某进程结束后其相关目录则会消失)。

大多数虚拟文件可以使用文件查看命令如cat、more或者less进行查看,有些文件信息表述的内容可以一目了然,但也有文件的信息却不怎么具有可读性。不过,这些可读性较差的文件在使用一些命令如apm、free、lspci或top查看时却可以有着不错的表现。

阅读全文 »

将python文件打包成exe,让没有python环境的人也能使用

笔者用的是python3.10与anaconda环境

首先安装所需的库:

conda install pyinstaller

在代码所在的目录中,创建一个新的Python脚本(例如compress_pdf_app.py),并将原始代码放入其中。

阅读全文 »

通过Python压缩pdf

pdf如果直接经过编辑,可能会有多图层叠加的问题;多次编辑后pdf文件可能会变得非常大,所以提供一种压缩pdf的方式,并且pdf压缩后,仍然可以选定文本和编辑文本。

PS:市面上的在线压缩软件要么收费,要么压缩效果不好,压缩以后可能有乱码

通过PyPDF2实现压缩

建议使用anaconda安装python的pypdf2包

笔者用的python版本是3.10,可能会出现pypdf2版本不兼容的问题

提供一个命令,直接输入conda命令行,即可让conda推荐合适的插件版本

conda install -c conda-forge PyPDF2

阅读全文 »

linux目录详解

目录 说明
/bin 存放二进制可执行文件(ls,cat,mkdir等),常用命令一般都在这里。
/home 存放所有用户文件的根目录,是用户主目录的基点,比如用户user的主目录就是/home/user,可以用~user表示
/usr 用于存放系统应用程序,比较重要的目录 /usr/local 本地系统管理员软件安装目录(安装系统级的应用)。这是最庞大的目录,要用到的应用程序和文件几乎都在这个目录。 /usr/x11r6 存放x window的目录 /usr/bin 众多的应用程序 /usr/sbin 超级用户的一些管理程序 /usr/doc linux文档 /usr/include linux下开发和编译应用程序所需要的头文件 /usr/lib 常用的动态链接库和软件包的配置文件 /usr/man 帮助文档 /usr/src 源代码,linux内核的源代码就放在/usr/src/linux里 /usr/local/bin 本地增加的命令 /usr/local/lib 本地增加的库
/opt 额外安装的可选应用程序包所放置的位置。一般情况下,我们可以把tomcat等都安装到这里。
/proc 虚拟文件系统目录,是系统内存的映射。可直接访问这个目录来获取系统信息。
/root 超级用户(系统管理员)的主目录(特权阶级^o^)
/sbin 存放二进制可执行文件,只有root才能访问。这里存放的是系统管理员使用的系统级别的管理命令和程序。如ifconfig等。
/dev 用于存放设备文件。
/mnt 系统管理员安装临时文件系统的安装点,系统提供这个目录是让用户临时挂载其他的文件系统。
/boot 存放用于系统引导时使用的各种文件
/lib 存放跟文件系统中的程序运行所需要的共享库及内核模块。共享库又叫动态链接共享库,作用类似windows里的.dll文件,存放了根文件系统程序运行所需的共享文件。
/tmp 用于存放各种临时文件,是公用的临时文件存储点。
/var 用于存放运行时需要改变数据的文件,也是某些大文件的溢出区,比方说各种服务的日志文件(系统启动日志等。)等。
/lost+found 这个目录平时是空的,系统非正常关机而留下“无家可归”的文件(windows下叫什么.chk)就在这里
阅读全文 »

一、基础知识

1.1 Linux系统的文件结构

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
/bin        二进制文件,系统常规命令
/boot 系统启动分区,系统启动时读取的文件
/dev 设备文件
/etc 大多数配置文件
/home 普通用户的家目录
/lib 32位函数库
/lib64 64位库
/media 手动临时挂载点
/mnt 手动临时挂载点
/opt 第三方软件安装位置
/proc 进程信息及硬件信息
/root 临时设备的默认挂载点
/sbin 系统管理命令
/srv 数据
/var 数据
/sys 内核相关信息
/tmp 临时文件
/usr 用户相关设定
阅读全文 »