- 博客(46)
- 收藏
- 关注
原创 记录linux下找不到core file的问题
linux在/etc/security/linux.conf可以配置核心转储文件大小,对于Ubuntu如果是图形登录则在/etc/systemd/user.conf和/etc/systemd/system.conf修改;也可以ulimit -c unlimited临时修改;但是最近的Ubuntu配置后仍不能生成core-file,cat /proc/sys/kernel/core_pattern发现内容为|/usr/share/apport/apport %p %s %c %d %P %Eappor
2022-05-17 19:02:19 423
原创 记录Android Studio的代理的一个bug
服气这垃圾玩意,在IDE settings取消代理不起作用,非要到C:/USERS/${username}/.gradle/gradle.properties把那几行代理删了才行,否则一直是connection refused(vpn似乎最近出了点问题必须取消代理)然后就能下载了,我按网上删了缓存都没用结果是图形界面设置不起作用,严重批评这种垃圾交互逻辑,让人迷惑!!!!!...
2022-05-16 13:26:11 268
原创 gdb调试进程卡死的问题
服务器莫名有时会卡死,且用valgrind drd发现不是加锁问题,可以用gdb attach调试,但attach后显示代码入口为deadbeaf/0:gedit vim /etc/sysctl.d/10-ptrace.conf最后一行改为kernel.yama.ptrace_scope = 0注意attach后更换线程需要detach开始时以为是程序死了gdb都控制不到,但后来想gdb的控制显然是与程序是否卡死无关的参考...
2022-05-15 09:46:36 1582
原创 记录一次Android Studio import项目的bug
做毕设安卓端时,之前的项目明明都开发完了,新安的Android Studio gradle却怎么也sync不了,时间紧迫没有时间阅读手册,花了五个小时用试错法发现问题:在右下角的event log,如果使用jdk 1.8提示 Gradle sync failed: Cause: invalid type code: 00 (625 ms)改为jdk 11提示gradle 3.3与jdk 11不兼容,分析要么改jdk,要么把上面warning解决,查上面warning的一个解决办法是在peripher
2022-05-12 04:47:35 1878
原创 linux把文件系统格式化成fat
网上查的mkfs -t ext4 /dev/sdb1似乎不支持fat;sudo mkfs.vfat -F 32 /dev/sdb1 (12,16,32)格式化成extfat:sudo apt install exfat-fuse exfat-utilssudo mkfs -t exfat /dev/sdb1注意fat16最大支持2GB,分区太大无法格式化成功...
2022-05-08 11:55:34 768
原创 opencv安上后编译运行的奇怪问题
这是网上剽的一段基于opencv的人脸识别项目,原来跑在树梅派是OK的,服务器安完后直接跑居然出问题#include <opencv4/opencv2/core/core.hpp>#include <opencv4/opencv2/imgproc/imgproc.hpp>#include <opencv4/opencv2/opencv.hpp>#include <vector>#include <cstdio>using names
2022-04-29 20:26:30 2591
原创 dpkg强制卸载
dpkg的一个强制卸载的方法安mysql的时候因为玄学国家防火墙,安到一般被阻断了,再卸的时候各种依赖不对,dpkg -r/-P怎么都卸不掉,提示有依赖卸载包的东西,找到一个 --force-all就可成功卸载了,但有的包可能出现缺少依赖的情况,最好还是不要烦躁看清楚依赖关系!另外apt autoremove千万别随便用,可能把系统的基本组件也给你卸掉...
2022-04-07 23:51:04 15225
原创 记录c++ template的奇怪语法问题
1.模板函数不能是虚函数这个还可以理解,参考c++模板函数可以是虚函数吗如果模板函数是虚函数,会严重降低编译器处理效率,可以知道C++连类的声明顺序都是严格要求的,这样的语法更不能允许了。2.模板函数和偏特化(1)经过测试:普通模板函数支持偏特化;(2)非内联类的模板函数支持偏特化;(3)内联类的模板函数不支持偏特化#include <iostream>using namespace std;class father{ public: templa
2022-03-23 15:27:52 1151
原创 pythonnet安装和使用
pythonnet是python调用c#的包,在ubuntu下比较难安,容易出问题:(注意 不要到github上直接下载,安了安不全还得卸掉,附卸的方法python setup.py install --record files.txtcat files.txt | xargs rm -rf )安装set1.安装Monosudo apt updatesudo apt install dirmngr gnupg apt-transport-https ca-certificatessud
2022-03-21 19:58:42 1953
原创 卸载l了xserver-xorg-input-all的情况下如何重装(鼠标键盘失灵怎么办)
参考:Ubuntu 18.04 鼠标+键盘突然失效为原bo主献上深深的感谢与敬意!
2022-03-21 19:50:23 747
原创 git结构
Git 工作区、暂存区和版本库基本概念我们先来理解下 Git 工作区、暂存区和版本库概念:工作区:就是你在电脑里能看到的目录。暂存区:英文叫 stage 或 index。一般存放在 .git 目录下的 index 文件(.git/index)中,所以我们把暂存区有时也叫作索引(index)。版本库:工作区有一个隐藏目录 .git,这个不算工作区,而是 Git 的版本库。下面这个图展示了工作区、版本库中的暂存区和版本库之间的关系:图中左侧为工作区,右侧为版本库。在版本库中标记为 “index”
2021-07-16 16:14:52 163 1
原创 记录Linux定位top软件包的方法
apt-file search可以定位某个文件所在的apt包,但直接search top出来一堆结果,技巧:搜索/usr/bin/top减小搜索范围搜到了procps是我电脑上的top包源procps
2021-06-30 10:56:09 194
原创 Ubuntu下的一次捕捉键盘输入的实验
之前一直奇怪应用程序是如何得到键盘输入的,首先这肯定与键盘的驱动程序有关,但驱动程序是如何把键盘输入传递给用户进程的?这个问题在用了windows下一个按键精灵后达到了顶峰,该案件精灵使用一个脚本表达模拟发送的键盘按键和鼠标移动,之后可以自动进行操作,这说明上层应用有操作鼠标键盘的能力.查找资料后,发现原来对于linux,鼠标和键盘驱动是这样写的:鼠标\键盘的输入会转为/dev/input下的io事件event*,设备对应的event号可通过cat /proc/bus/input/devices查看.比如
2021-06-10 11:25:34 1237 2
原创 国内安装gopkg
国内安装gopkg在vscode直接安会失败,需要配置国内源centos7下export GO111MODULE=ongo env -w GOPROXY=https://goproxy.cn,directgo get -v github.com/uudashr/gopkgs/v2/cmd/gopkgs
2021-05-15 22:45:18 305
原创 git reset and git diff
git diffgit diff filexcompare contents in workspace and folder space,b means folder space and a means workspace,+ means more and - means less.git logwatch commit history.Note that git pull or git clone will obtain project’s history record.
2021-02-19 18:15:39 101
原创 调整任务堆栈大小
linux下任务堆栈可以在/etc/security/limits.conf中控制每个进程打开文件描述符的最大数量和堆栈数量,重启后生效;在/etc/sysctl.conf中控制系统打开最大文件描述符的数量fs.file-max,sudo sysctl -p生效最大堆栈设置不合理,数组过大(比如400M)会产生错误,设置正确后运行正常windows下加编译参数-Wl,–stack=1677721600 (1600M)以下代码在windows跑会崩溃#include <iostream&
2020-12-30 15:19:43 811 1
原创 在centos7下安装gcc9.3的一点感悟
只是安个最新版gcc,没想到经历了痛苦的过程,好在终于安上了。。。第一个遇到的问题是提示不存在<bits/c++config>,在/usr中查找发现某个文件夹是有这个头文件的,而且通过gcc命令知道该文件夹也在gcc的包含路径中,但是为什么硬是提示找不到没有弄明白,解决完全是碰巧把这个文件夹下的头文件cp到了gcc安装文件夹的include目录下,之后居然不报错了。。。第二个遇到的问题是提示include中的basename导致string.h中旧的定义混淆,原先我尝试了把/usr/incl
2020-12-28 02:59:10 720 1
原创 centos7安装mondo rescue
[mondorescue]name=centos 7 x86_64 - mondorescue Vanilla Packagesbaseurl=ftp://ftp.mondorescue.org//centos/7/x86_64enabled=1gpgcheck=0gpgkey=ftp://ftp.mondorescue.org//centos/7/x86_64/mondorescue.pubkey从官网下载的repofile有两点要注意:1.除了拷贝到/etc/yumrepo.d/外,还要注
2020-12-15 14:27:29 849
原创 把自己的系统打包成镜像,并在docker上启动
1. tar --numeric-owner --exclude=/proc --exclude=/sys -cpzvf centos7-bak.tar /这一步是把根目录打包,注意要还要把你在的目录exclude2.docker import centos7-bak.tar3.docker images 查看导入的image的id4.docker run -it image-id /bin/bash5.这样就跑起了,注意如果想跑mysql服务第一种可以直接mysqld跑,第二种:由于docker
2020-12-13 20:42:21 2367
原创 linux文件权限的理解
如果用户的有效用户id等于文件的用户id有u的权限,或者用户在文件的组id的组中有g的权限,否则只有o的权限。在设计文件服务器时(为了setuid以root运行),没有必要setgid,同时除非用户时root用户,当用户在某组时,才能setgid成功,注意特权进程要先setgid再setuid.usermod -g groupname username可以把用户的主组改为groupname,usermod -G groupname username可以把用户加入groupname组,注意不要直接在/etc
2020-12-10 17:20:17 99
原创 对makefile和.PHONY的一些理解
makefile首先会把其遇到的第一个目标作为主目标;makefile会依次完成被主目标依赖的目标。makefile尽力做到一点:make时只加入有改动的部分,这是通过如果主目标依赖的目标为一个文件,如果该文件已生成,那么检查目标依赖文件,如果依赖文件未更新,不进行改动,否则链接入更新;这说明若想做到makefile的最小更新,依赖文件需要是精确的编译出的.o文件名,否则make会认为目标未生成而每次都执行命令(已实验)。这样如果对于Make target,如target为clean,make发现clea
2020-12-06 20:54:29 255
原创 nfs网络挂载制作服务器镜像
1.新服务器开启nfs服务链接:配置nfs2.nfs命令用法链接:nfs命令3.出错时查看日志cat /var/log/messages | grep mount4.配置nfs服务器方法链接:主要是/etc/exports的配置5.挂载系统镜像在本地挂载到nfs的文件夹,就会挂载到远端服务器(因为本地容量有限,无法再挂载一个满盘)注意由于至少需要50G,需要对nfs服务器扩容,链接:阿里云磁盘扩容教程扩容后就可以制作镜像,并利用挂载特性和制作命令把镜像传输到远端了链接:腾讯云镜像制作
2020-11-24 13:39:54 1065 5
原创 C语言在底层如何对double和float压栈
一直很疑惑为什么printf可以用%f输出double和float类型,因为一个是8字节一个是4字节,如何正确弹出堆栈呢?在阅读arm汇编码后发现:1.可变长度参数列表前必须有1个参数,从该参数就开始压栈了,并且压栈从右向左进行也是与该机制对应;(最后压左边,这样对于满递减堆栈,sp地址上就是可变参数之前的先行参数,在vprintf前不需知道传了几个)2.对于float,也会压8个字节,double压的8个字节全部有意义,float会压4个无意义字节后才压4个有意义字节,这个无意义字节经测试不是随便生
2020-11-23 21:43:50 277 2
原创 linux下新建用户的一个奇怪bug
在编写oracle给的pam的测试例程时,发现getgrnam()函数get到root组或我的用户组时为空,打开/etc/group文件发现root组中确实没有root,虽然用groups root命令可以看到root主要组是root,但是恐怕该命令是通过/etc/passwd文件判断的,不知道linux系统为什么这样设计;如果想让yxt属于yxt组被与组有关的api读到,需要在/etc/group中手动修改,或者:gpasswd -a username groupname 把用户username加入到gr
2020-11-14 01:30:14 87
原创 ubuntu18打系统log的方法
logger this is a test log line之后就可以在/var/log/syslog最下面一行看到了;syslog函数也会像该文件打log
2020-11-13 19:57:41 725
原创 linux安装pam库
linux安装pam库centossudo yum install pam-devalubuntusudo apt-get install libpam0g-dev
2020-11-13 12:20:39 5675 2
原创 windows下ftp无法启用被动模式
使用ftp命令行连接公网服务器时,只能使用passive mode,解释但是windows下虽然可以quote passive,连上了是无效的,网上说windows命令行原生ftp根本不支持passive mode,开启虚拟机后,linux下命令行ftp直接passive mode即可进入passive mode(linux下不要quote pasv没有用)...
2020-11-07 21:01:55 3763
原创 centos下搭建vncserver
1.安装vncservercsdn收藏夹启动vncserver vncserver :2注意:连接时ip:22.安装centos图形界面https://jingyan.baidu.com/article/19020a0a5b1b88529d28423b.htmlhttps://my.oschina.net/Kanonpy/blog/18378563.修改vnc配置文件https://blog.csdn.net/weixin_39278265/article/details/104221023
2020-11-07 10:43:07 188
原创 centos7 nginx配置php
centos7 nginx配置php:网上的教程中需要注意的问题有:首先是配置上root 你存放php目标的文件夹;fastcgi_pass 127.0.0.1:9000; #fastcgi_pass unix:/tmp/php-cgi.sock; include fastcgi.conf;而不需要再设置include fast_params以及下面的两句定义了,如果有fastcgi.conf就只用包含这一个文件,这是nginx版本的区别;另外如果想在html中内嵌ph
2020-10-23 01:48:20 160
原创 makefile出问题:无法检测文件的更新
makefile出问题:无法检测文件的更新all:message ClientMessagemessage:messageDeal.o gcc messageDeal.o -o message -lpthreadlWs2_32ClientMessage:ClientMessage.o gcc $< -o $@%.o:%.c gcc -c $< -o $@clean: -rm *.o message.exe ClientMessage.exe.PHO
2020-10-13 20:37:08 511
原创 windows下vscode提示检测到 #include 错误。请更新 includePath。已为此翻译单元(C:\Users\86132\桌面\CLASS\机房监控\源码\代码汇总\测试程序\co
windows下vscode提示检测到 #include 错误。请更新 includePath。已为此翻译单元(C:\Users\86132\桌面\CLASS\机房监控\源码\代码汇总\测试程序\connectiontest.c)禁用波形曲线。C/C++(1696)在包含pthread.h时出现上述问题,用gcc -v -E -x c whatever.c后输出的includePath是c:\mingw\bin…/lib/gcc/mingw32/8.2.0/includec:\mingw\bin…/l
2020-10-10 17:53:23 16447
原创 Error Code: 1175. You are using safe update mode and you tried to update a table without a WHERE tha
Error Code: 1175. You are using safe update mode and you tried to update a table without a WHERE that uses a KEY column. To disable safe mode, toggle the option in Preferences -> SQL Editor and reconnect.在mysql workben直接执行SET SQL_SAFE_UPDATES = 0即可.
2020-10-09 23:23:17 111
原创 记录一个超级乌龙的智障bug,也许能帮助类似我的白吃
记录一个超级乌龙的智障bug,也许能帮助类似我的白吃。。。测试cjson库时把test.cpp编译名为test,gdb运行有输出正常运行却无输出,一直以为是程序有问题,然后才发现我在终端输入的是test而不是./test…不知道为什么/bin里有test这个东西,所以才。。。要注意这个啊我擦...
2020-10-08 19:08:48 114
原创 error: cannot open source file “bits/c++config.h
Centos7.8第一次写cpp的一个bugerror: cannot open source file "bits/c++config.h解决方法
2020-10-07 20:36:15 2619 2
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人