
linux
HockerF
这个作者很懒,什么都没留下…
展开
-
ssh隧道转发ssh数据
ssh 隧道原创 2022-11-09 15:44:48 · 290 阅读 · 0 评论 -
关于 librecad 的中文支持
librecad 画图的中文支持优化的思路原创 2022-07-24 08:40:09 · 2287 阅读 · 2 评论 -
c++ 二进制左边第一个1的位置
在做数据压缩的时候, 需要找到最小存储单元, 在网上看了,没找到合适的,这里把我想到的一种方式供大家参考。#include <cstdio>#include <iostream>using namespace std;char bin_left_one(u_int64_t num){ char pos = 0; u_int64_t t = num; for(int i = 5; i >= 0; i--){ if(num >原创 2021-12-12 19:25:51 · 1756 阅读 · 0 评论 -
使用 rapidjson 对 json 数据进行遍历
rapidjson 的json实现都是 头文件.最近好像被 腾讯 “收” 了,自己没得创新, 腾讯老是 “玩”这种, 让人看不懂。下面代码是 利用 rapidjson 库对 json数据进行遍历的demo。 供大家参考!!#include "rapidjson/document.h" // rapidjson's DOM-style API#include "rapidjson/prettywriter.h" // for stringify JSON#include <cstdi原创 2021-12-12 08:57:53 · 2749 阅读 · 2 评论 -
编译 xserver
界面是操作系统可视化不可少的一部分,最近一直在看 x11 的相关资料, 现在来编译下 xserver 代码。./autogen.sh的时候报了下面这些错误,附上解决方法:遇到error: must install xorg-macros 1.3少了点 xorg的东西,尝试后,发现安装下面库有效。sudo apt install libxorg-gtest-dev遇到configure: error: Package requirements (glproto >= 1.4.9原创 2020-10-21 14:48:45 · 1176 阅读 · 0 评论 -
ubuntu18.04 修改 ssh登陆标语
ssh 的服务登陆的时候会有一些友善的标语,而我们的服务器并不一定会用到。在 ubuntu18.04 上,我们可以修改 /etc/update-motd.d/ 的文件内容来达到我们修改标语的目的。默认情况下,有00-header 10-help-text 50-motd-news 80-esm 80-livepatch 90-updates-available 91-release-upgrade 92-unattended-upgrades 95-hwe-eol 98-fsck-at-reboot 9原创 2020-10-21 11:56:01 · 1685 阅读 · 0 评论 -
x11 vnc rdp
最近对远程控制有点兴趣,于是我查了一些资料。x11 是界面控制的协议,xlib 是 该协议在 linux 的代码实现。 x11 的工作流程是这样的:鼠标键盘输入 -> 应用程序处理 -> 显示器显示人直接接触的输入输出部分是服务器端,应用程序是客户端。至于为啥这个样,估计是以前的项目规划上一般是多对一列为服务器客户端模式,一个服务器为多个客户端服务。虽然这样实现理解上有点拗口,但是原理上确实是这样的,这样规划很方便实现远程操作。vnc 是一个远程控制vnc 项目也是原创 2020-10-21 11:03:01 · 1228 阅读 · 0 评论 -
ubuntu 提取/解压 CHM
chm 文件是windows作帮助手册的文件格式,其实chm本身是html文件一个封装。在ubuntu下面,可以使用 kchmviewer 软件来打开。但是html的浏览,其实可以用浏览器来完成,第一步我们需要将html从chm加压出来。需要用到 extract_chmLib 。这里要安装 libchm-bin。sudo apt install libchm-bin运行extract_chmLib file.chm 指定保存html的目录参考:linux 下提取/解压 CHM.原创 2020-10-12 17:21:51 · 852 阅读 · 0 评论 -
x11 simple-text
讲解了字符串的打印,代码理解参考 deletion_message原创 2020-08-24 00:07:11 · 140 阅读 · 0 评论 -
x11 simple-drawing
simple-drawing 中绘制了各种形状。代码理解参考 color-drawing.原创 2020-08-24 00:06:35 · 225 阅读 · 0 评论 -
x11 screen_capture
对整个屏幕进行截图。创建吗一个和当前屏幕一样大的窗口 int width = DisplayWidth(display,screen_num), height = DisplayHeight(display,screen_num); Window window = XCreateSimpleWindow(display, RootWindow(display, screen_num), 0, 0, width, height, 1, 0, 0);获取窗体截图 XImage *原创 2020-08-24 00:05:55 · 723 阅读 · 2 评论 -
x11 resize
口大小改变消息处理 case ConfigureNotify: if (width != ev.xconfigure.width || height != ev.xconfigure.height) { width = ev.xconfigure.width; height = ev.xconfigure.height; printf("Size changed to: %d by %d\n", width, height); } break;这里 C.原创 2020-08-24 00:05:14 · 219 阅读 · 0 评论 -
x11 prog-1 prog-2
prog-1创建了一个窗口的最简单代码prog-2在窗口中画了一条线段, 步骤也是在 基础篇的 simple_window 有说明,可以参考一下。原创 2020-08-24 00:04:40 · 145 阅读 · 0 评论 -
x11 load_font
该小节代码为加载字体,具体在 deletion_message 中有实现,所以不单独做讲解了。原创 2020-08-24 00:03:24 · 170 阅读 · 0 评论 -
x11 events
这个代码实例代码也是相对来说比较长的。这个代码里面讲了鼠标和键盘事件的处理。注册事件 XSelectInput(display, win, ExposureMask | KeyPressMask | ButtonPressMask | Button1MotionMask | Button2MotionMask | StructureNotifyMask);事件监听 XNextEvent(display, &an_event原创 2020-08-24 00:02:55 · 1181 阅读 · 0 评论 -
x11 draw_string
这个例子做字符串的打印,个人认为这个例子最值得讲的是事件处理中键盘事件的运用,我们来看看。在窗口信息初始化完成后,直接在 while循环中对事件进行监控 XNextEvent(display,&event);当事件为 Expose的时候,在 窗口的 (10,10) 坐标用默认配置开始绘制字符串。 XDrawString(display,win,gc,10,10,hello,strlen(hello));Expose (暴露) 事件的触发并不是那么明确,大致就是窗口 暴露 大原创 2020-08-24 00:02:00 · 323 阅读 · 0 评论 -
x11 draw-pixmap
xlib 主要就是图像展示效果,这个时候就可以体现出 pixmap 的作用了。创建 pixmap 类型的 bitmap int rc = XReadBitmapFile(display, win, "icon.bmp", &bitmap_width, &bitmap_height, &bitmap,原创 2020-08-24 00:01:23 · 664 阅读 · 0 评论 -
x11 draw_pixels
对图像每个像素 统一 加一个值创建一个图片 char *data = (char*)malloc(256*256*4); XImage *img = XCreateImage(display,visual,DefaultDepth(display,screen_num),ZPixmap, 0,data,256,256,32,0);调用 XAddPixel 添加值 int count = 256 * 256; for (int i = 0; i < count; ++i)原创 2020-08-24 00:00:24 · 204 阅读 · 0 评论 -
x11 double_win
该样例分析了创建多窗口的流程,本样例创建了两个窗口,供大家参考获得根窗口 Window root = RootWindow(display,screen_num);之前是采用 DefaultRootWindow 函数来获取的,这个函数返回当前默认的主窗体,这个窗体会发生变化,所以如果我们想让我们应用窗体可控,就得选用 RootWindow 函数来得到。创建子窗体 Window win1 = XCreateSimpleWindow(display,root,0,0,500,500,1,0xff原创 2020-08-23 23:59:29 · 189 阅读 · 0 评论 -
x11 display_image
显示图片将图片信息加载到内存中,这里直接在内存中生成图片 int i, j; unsigned char *image32=(unsigned char *)malloc(width*height*4); unsigned char *p=image32; for(i=0; i<width; i++) { for(j=0; j<height; j++) { if((i<256)&&am原创 2020-08-23 23:58:48 · 775 阅读 · 2 评论 -
x11 deletion_message
这是一个在屏幕上打印字符串的例子,但是例子整体结构有些变化,我们采用 while 是循环的方式来判断是否退出,而不是采用定时的方式,有个好处是,在while中重绘,可以在屏幕发生变化时,让我们的内容任然在屏幕上。接下来看看这个循环怎么回事:先给 窗口管理器 说, 我要 WM_DELETE_WINDOW 的事件通知 Atom wm_delete_window; wm_delete_window = XInternAtom (text_box.display, "WM_D原创 2020-08-23 23:58:05 · 368 阅读 · 0 评论 -
x11 cursor
自定义鼠标样式鼠标样式可以分两种,一种是系统内部的,一种是用户自定义的。系统内部样式定义为系统内部的缓冲样式 /* create a 'watch' cursor. */ font_cursor = XCreateFontCursor(display, XC_watch); /* attach this cursor to our window. */ XDefineCursor(display, win, font_cursor); XSync(displ原创 2020-08-23 23:57:09 · 846 阅读 · 0 评论 -
x11 color-drawing
彩色绘画获取屏幕颜色空间 screen_colormap = DefaultColormap(display, DefaultScreen(display));通过颜色名分配颜色结构体 rc = XAllocNamedColor(display, screen_colormap, "red", &red, &red); if (rc == 0) { fprintf(stderr, "XAllocNamedColor - failed to allocated 're原创 2020-08-23 23:56:10 · 426 阅读 · 0 评论 -
x11 all-request
这个程序不能用默认的 gcc 编译,我们可以用g++ all-request.c -o all-request `pkg-config --cflags --libs x11` 看了下源码,有接近八百行,有点长。git clone 的代码有点问题,不能正常运行,插眼,后期来学习。...原创 2020-08-23 23:55:11 · 133 阅读 · 0 评论 -
x11 window-operations
XResizeWindow 实现 窗口的移动 int i; /* start shrinking our window in a loop. */ for (i=0; i<40; i++) { win_width -= 3; win_height -= 3; XResizeWindow(display, win, win_width, win_height); XFlush(display); usleep(20..原创 2020-08-22 15:32:34 · 415 阅读 · 0 评论 -
x11 simple-wm-hints
窗口的标识设置样例。得到 icon 的图片 /* load the given bitmap data and create an X pixmap contianing it. */ icon_pixmap = XCreateBitmapFromData(display, win, icon_bitmap_bits,原创 2020-08-22 14:54:30 · 345 阅读 · 0 评论 -
X11 入门
这个基础参考是 开源中国的文章 《X11 入门练习》的源码套娃,我将表述转换了下。源码在我放在gitee 项目中 src 目录下 simple_window.c 文件中。引入 xlib 头文件#include<X11/Xlib.h>链接 x server Display * dsp = XOpenDisplay(NULL); if (!dsp) { return 1; }创建窗口 Window win = XCreate原创 2020-08-22 14:23:25 · 2030 阅读 · 0 评论 -
kicad 开源项目的编译
kicad是一个比较成熟的pcb开源项目,拥有 ngspice电路仿真,pcb设计,元件封装,3d预览等功能。而且这个软件的社区很活跃,中国开源社区也在 gitee 上维护一个开源社区为大家解决问题。我这里来简单记录下我的 kicad源码编译的环境搭建过程。最开始参考kicad 的官网文档来搭建,由于太基础,很多包的下载网速不敢恭维,严重影响进度,虽感觉一线希望,但曙光渺茫,于是放弃了。后来迂回战术,用docker的环境搭建的方式来完成,官方有提供一个docker镜像,但是应该是环境维护不够,编译的原创 2020-07-29 10:52:03 · 2829 阅读 · 0 评论 -
linuxmint 下 firefox 切换搜索引擎
firefox 浏览器还是可以的,渲染还行,多个平台都可以用,算是世界前茅.修改百度收索引擎:打开网址https://www.linuxmint.com/searchengines.php刷到最后,找到,这个 其他搜索引擎.我们在这里,点击百度的标识.然后进入:点击 here. 就在搜索引擎序列中加入了百度搜索引擎.在这里选择百度搜索引擎作为默认搜索引擎:about:preferences#search.然后就搞定了....原创 2020-06-07 17:22:51 · 565 阅读 · 0 评论 -
Ubuntu 登录桌面后鼠标键盘输入设备没有反应
在Ubuntu上使用官方的deb包安装cuda的时候,可能是重装了nvidia驱动,导致出现nvdia驱动依赖错误。这是一个严重的问题,cuda程序直接崩溃不能运行。nvida-smi命令检测不到nvida GPU的存在。后来通过重装了依赖程序和nvida显卡驱动。然后使用run包重装cuda。程序环境正常了。这时,Ubuntu 登录到桌面后,鼠标键盘不能输入, 但是ssh服务还能用,远程查看,自动启动任务也运行正常。 定位到输入设备驱动问题。使用ssh登录后,运行安装:sudo apt inst原创 2020-05-28 08:52:51 · 1779 阅读 · 0 评论 -
linux 虚拟网卡 在网络设备调试的作用
在网络设备调试的过程中,往往设备使用的网段和计算机外网可能不是一样的。这个时候,我之前使用ifconfig来临时配置为设备ipsudo ifconfig eth0 192.168.1.233 255.255.255.0往往这样就牺牲了主机的上网功能。其实,还有一种比较厉害的方法,就是添加一个虚拟网卡。sudo ifconfig eth0 add 192.168.1.233 255.25...原创 2020-04-14 10:24:33 · 571 阅读 · 0 评论 -
LinuxMint xfce版本
LinuxMint 桌面系统官网有三个发行版本版本支持说明Cinnamon32-bit 64-bitAn edition featuring the Cinnamon desktopMATE32-bit 64-bitAn edition featuring the MATE desktopXfce32-bit 64-bitAn edition ...原创 2020-03-30 21:56:52 · 1216 阅读 · 0 评论 -
iptables 和 firewalld
这两天干了点运维的事情,这里做个记录。iptables的基础概念,可以看看 iptables详解(1):iptables概念, 这里面介绍得很详细。iptables 和 firewalld 的关系,可以看看CentOS 7 中配置Firewall规则, 还有 Firewalld的结构也不错。...原创 2020-01-20 13:23:14 · 300 阅读 · 0 评论 -
linux x-window
其实linux图形化桌面系统架构一直被诟病,当然如今linux桌面系统也走进了家家户户,主要是国外的小伙伴。linux桌面使用的是x-window架构,如果不太懂,可以看看这篇博文 [Linux图像系统框架-理解X11与Qt的层次结构],基本做到了图文并茂。之所以说linux的图像处理是弱点,其实并不是我们日常办公,而是说的3D渲染相关的性能,如今其实这块linux并不差,现在也有很多大型3d...原创 2019-12-24 15:07:33 · 289 阅读 · 0 评论