linux
piaopiaopiaopiaopiao
这个作者很懒,什么都没留下…
展开
-
理解CAS与__sync_bool_compare_and_swap
CAS是compare and swap,简单来说就是,在写入新值之前, 读出旧值, 当且仅当旧值与存储中的当前值一致时,才把新值写入存储。__sync_bool_compare_and_swap是可供程序员调用的接口, 为什么需要CAS呢? 一起来看下:让10个线程执行加法操作, 看看最简单的版本:#include <stdio.h>#includ...转载 2020-02-20 11:38:04 · 766 阅读 · 0 评论 -
ubuntu阿里软件源
ubuntu18.04:备份:cp /etc/apt/sources.list /etc/apt/sources.list.bak清空source.list:echo > /etc/apt/sources.list再将以下源文件复制到/etc/apt/sources.listdeb http://mirrors.aliyun.com/ubuntu/ bionic main ...转载 2020-02-10 16:03:14 · 453 阅读 · 0 评论 -
VirtualBox:实现主机和虚拟机共享文件
本文转自:https://blog.csdn.net/momorrine/article/details/803235951.环境之前虚拟机一直用的是Vmware,这次用VirtualBox,要安装一些软件,以为也可以很方便地将安装包从主机拖动拷贝到虚拟机中,谁知道不行,拖动拉到虚拟机窗口后,一直显示的是红色的不可操作图标,而释放鼠标后,并文件并没有拷贝到虚拟机中...转载 2020-02-06 19:29:03 · 5139 阅读 · 0 评论 -
套接字(socket)编程简单实现server-client聊天程序
1、socket在TCP/IP协议中,一个IP地址标识网络通讯中唯一一台主机,而一个IP地址+一个TCP(或UDP)端口号就可以标识网络通讯中的一个进程,此时的IP地址+端口号即称为socket。内存中的多字节数据相对于内存地址有大小端之分,磁盘文件中的多字节数据相对于文件中的偏移地址也有大小端之分,网络数据流同样也有大小端之分:先发出的数据是低地址,后发出的数据是搞地...转载 2020-01-07 16:35:33 · 778 阅读 · 0 评论 -
linux系统访问windows共享目录方法
在linux执行命令:mount -t cifs -o username=Everyone,password=* //192.169.65.89/test ./myMount其中:username=Everyone,password=*为windows共享目录的用户名和密码//192.169.65.89/test为windows的ip和共享目录./myMount为linux上的...原创 2019-11-18 10:35:25 · 381 阅读 · 0 评论 -
gdb调试正在运行的程序
1、获取进程ID号PIDps -aux | grep "程序名"2、切换到root用户sudo -i3、启动gdb程序gdb4、在gdb命令行中,执行命令:attach PID5、这样就可以开始调试了...原创 2019-03-21 15:51:38 · 325 阅读 · 0 评论 -
mtrace-内存使用追踪
本文转自:https://www.jianshu.com/p/d9e12b66096a1. 函数格式: #include <mcheck.h> void mtrace(void); void muntrace(void);mtrace 用于开启内存使用记录,muntrace用于取消内存使用记录。内存使用情况记录到一个文件,值由...转载 2019-03-01 16:34:45 · 1447 阅读 · 0 评论 -
互斥锁和条件变量的区别与应用
两个线程操作同一临界区时,通过互斥锁保护,若A线程已经加锁,B线程再加锁时候会被阻塞,直到A释放锁,B再获得锁运行,线程B必须不停的主动获得锁、检查条件、释放锁、再获得锁、再检查、再释放,一直到满足运行条件的时候才可以(而此过程中其他线程一直在等待该线程的结束),这种方式是比较消耗系统资源的。条件变量同样是阻塞,还需要通知才能唤醒,线程被唤醒后,它将重新检查判断条件是否满足,如果还不满足,该线程...原创 2019-02-25 10:09:38 · 2479 阅读 · 0 评论 -
ubuntu 16.04 becompare 安装,规则以及颜色设置
本文转自:https://blog.csdn.net/h_8410435/article/details/837806491.ubuntu 安装bcompare 参考:http://www.scootersoftware.com/download.php?zz=kb_linux_installwget http://www.scootersoftware.com/bcompare-4.2...转载 2019-02-25 09:58:48 · 863 阅读 · 1 评论 -
查看进程的线程数
方法一:假设程序名为a.out,先找到进程PID,在根据PID找线程(a) ps -efL | grep a.out 方法二:现在进程PID,再查看/proc/PID/task/目录下的文件数,即线程的个数(a) ps -ef | grep a.out(b) ls /proc/PID/task/或者cat /proc/PID/status其中有一项T...原创 2019-01-16 15:33:40 · 296 阅读 · 0 评论 -
offsetof和container_of
本文转自:http://www.cnblogs.com/skywang12345/p/3562146.html前面一章"介绍双向链表并给出了C/C++/Java三种实现",本章继续对双向链表进行探讨,介绍的内容是Linux内核中双向链表的经典实现和用法。其中,也会涉及到Linux内核中非常常用的两个经典宏定义offsetof和container_of。内容包括:1. Linux中的两个经典宏...转载 2019-01-07 14:53:39 · 200 阅读 · 0 评论 -
gedit显示中文乱码
1、解决方法,在终端上执行命令gsettings set org.gnome.gedit.preferences.encodings candidate-encodings "['GB18030', 'UTF-8', 'CURRENT', 'ISO-8859-15', 'UTF-16']"原创 2018-11-14 16:13:42 · 713 阅读 · 0 评论 -
解决 shell脚本中SCP命令需要输入密码的问题
本文转自:https://blog.csdn.net/u012454773/article/details/72779439使用密钥文件,两台机器建立信任这里假设主机A(192.168.100.3)用来获得主机B(192.168.100.4)的文件。在主机A上执行如下命令来生成配对密钥:ssh-keygen -t rsa遇到提示回车默认即可,公钥被存到用户目录下.ssh目录,比...转载 2018-11-13 18:36:52 · 3167 阅读 · 0 评论 -
ubuntu 查询软件依赖
本文转自:https://blog.csdn.net/zuopaide/article/details/39344915提示说lvm2没有装,但是我的本地源上有这个deb包啊,怀疑是它的依赖没有在本地源中,需要查找依赖 如何查看lvm2的依赖呢?正向依赖root@ubuntu:/etc/apt# apt-cache depends lvm2lvm2 Depends:...转载 2018-11-09 08:28:28 · 3044 阅读 · 0 评论 -
Linux ELF文件格式分析---objcopy命令的使用
本文转自:https://blog.csdn.net/xj178926426/article/details/73777611 Linux ELF文件格式分析—objcopy命令的使用最近在看《程序员的自我修养—链接、装载与库》一书,对书中提到的一个小问题,自己做了个试验验证一番,然后记录之。其具体问题如下: 如果我们将一个二进制文件,比如图片,MP3音乐,词典一类的东西作为目标文件的一段...转载 2018-10-31 16:27:23 · 672 阅读 · 0 评论 -
Linux添加虚拟网卡的多种方法
本文转自:https://blog.csdn.net/hzhsan/article/details/44677867Linux添加虚拟网卡的多种方法有时候,一台服务器需要设置多个ip,但又不想添加多块网卡,那就需要设置虚拟网卡.这里介绍几种方式在linux服务器上添加虚拟网卡. 我们向eth0中添加一块虚拟网卡:第一种方法:快递创建\删除虚拟网卡sudo ifconfig eth...转载 2018-10-15 08:35:50 · 4442 阅读 · 0 评论 -
valgrind 工具介绍和简单的使用
本文转自:https://www.cnblogs.com/AndyStudy/p/6409287.html最近老是遇上各种奇奇怪怪的core dump,不太会分析的情况下看到了这款工具。在这记录分享下。Valgrind 是个开源的工具,功能很多。例如检查内存泄漏工具---memcheck。Valgrind 安装:去官网下载: http://valgrind.org/download...转载 2018-09-25 19:20:46 · 343 阅读 · 0 评论 -
GDB常用命令使用说明(一)
本文转自:http://www.cnblogs.com/xsln/p/gdb_instructions1.html GDB(GNU Debugger)是在Unix以及类Unix系统下的调试工具。功能极其强大,几乎涵盖了你所需要的全部功能。 GDB主要帮忙你完成下面四个方面的功能: 1.启动你的程序,可以按照你的定制要求随心所欲的运行程序。 2.可让被调试的程序在你所指定的调置的断点处...转载 2018-09-03 16:00:33 · 186 阅读 · 0 评论 -
C/C++线程名字设置和查看
原文:https://blog.csdn.net/lijzheng/article/details/39963331今天跟同事讨论一个问题,谈到pthread_create创建线程之后,线程的名字直接从父进程继承下来,但这个名字对我们后续定位分析问题没有直接的帮助,如果能够修改线程的名称,那定位分析问题就比较方便了。linux下的prctl库自kernel 2.6.9后支持PR_SET_...转载 2019-03-18 19:33:03 · 5255 阅读 · 0 评论 -
Linux查看系统信息的一些命令及查看已安装软件包的命令
本文转自:https://www.cnblogs.com/kex1n/p/5909617.html系统# uname -a # 查看内核/操作系统/CPU信息# head -n 1 /etc/issue # 查看操作系统版本# cat /proc/cpuinfo # 查看CPU信息# hostname # 查看计...转载 2019-03-27 14:32:04 · 571 阅读 · 0 评论 -
qt4和qt5切换
设置环境变量进行切换,如: export QT_SELECT=qt5原创 2019-08-14 16:53:02 · 456 阅读 · 0 评论 -
Qt: XKEYBOARD extension not present on the X server.的解决方法
最近在服务器上用qtcreator改代码,发现无法用键盘键入任何东西,然后发现在终端会报出这样一行东西:Qt: XKEYBOARD extension not present on the X server.查了很多东西,发现这就是问题所在。至于怎么改,有说要改.bashrc的,具体需要添加以下两行代码:export XKB_DEFAULT_RULES=baseexport QT_...转载 2019-08-01 16:15:06 · 3300 阅读 · 0 评论 -
解决xshell图形界面鼠标点击不了
具体解决办法为:方法1.右键右下角Xmanager图标---属性---设备---鼠标设置---3按钮仿真(同时单击向左按钮和向右按钮)选项取消勾选。方法2.打开Xconfig---Default Profile---设备---鼠标设置---3按钮仿真(同时单击向左按钮和向右按钮)选项取消勾选。...转载 2019-07-31 15:13:58 · 2484 阅读 · 0 评论 -
linux(ubuntu)下安装和启动kafka以及若干坑
本文转自:https://blog.csdn.net/stpeace/article/details/786242651. 下载二进制的kafka安装包, 地址:http://kafka.apache.org/downloads.html, 以kafka_2.10-0.9.0.0.tgz为例吧, 下载后, 如下:ubuntu@VM-0-13-ubuntu:~$ lskafka_2....转载 2019-07-16 19:33:11 · 632 阅读 · 0 评论 -
Xshell添加快速命令按钮
本文转自: 工具->快速命令集,新建一个命令集或者直接编辑默认命令集。 如果是已添加ssh信任或支持免密码登录方式的机器,可直接send文本ssh user@host即可。 如果是需要密码登录,则需要用到Xshell的vbs脚本。(再次说明,Xshell5以下的版本不支持vbs脚本) 新建一个以vbs为后缀名的文本文件,粘贴以下这段脚本。 S...转载 2019-07-16 19:21:55 · 2596 阅读 · 0 评论 -
KVM虚拟机随宿主机开机自启动
本文转自:https://blog.csdn.net/lxypeter521/article/details/80756107方法一: 图形化界面必须在虚拟机关机情况下完成!!!在KVM图形化管理工具中设置开机自启动在Startvirtual machine on host boot up 前勾选即可方法二: 命令行界面virsh autostart 虚拟机名 #...转载 2019-07-10 15:48:37 · 1271 阅读 · 0 评论 -
samba安装与配置
本文转自:https://jingyan.baidu.com/article/3a2f7c2ed314ef26afd611a1.html配置参考:https://www.linuxidc.com/Linux/2017-11/148194.htm 首先需要安装samba程序,部分Ubuntu镜像已经自带;执行如下命令即可 sudo apt-get install samba...转载 2019-07-10 15:43:19 · 824 阅读 · 0 评论 -
nfs共享,linux访问windows 7上文件夹
本文转自:https://jingyan.baidu.com/article/cdddd41c8bcd4453ca00e15a.html最近在做一个Linux下的软件开发,需要将Linux下的文件拷到自己电脑上,有很多办法,最终还是决定采用NFS挂载的方式。本文使用haneWIN这一款软件,在Windows7系统下搭建NFS服务器,然后在Linux的客户端挂载我电脑共享的文件夹就可以实现了。...转载 2019-05-10 14:51:22 · 1361 阅读 · 0 评论 -
用gdb分析linux死锁
本文转自:https://blog.csdn.net/zhang2531/article/details/52085731简介死锁 (deallocks): 是指两个或两个以上的进程(线程)在执行过程中,因争夺资源而造成的一种互相等待的现象,若无外力作用,它们都将无法推进下去。此时称系统处于死锁状态或系统产生了死锁,这些永远在互相等待的进程(线程)称为死锁进程(线程)。 由于资源占用是互斥...转载 2019-04-28 16:48:52 · 280 阅读 · 0 评论 -
查看ubuntu安装包信息
查看smbd是否按照which smbd查看smbd是否开启sudo netstat -anp | grep smbd或ps -aux | grep smbdsmbd目录映射为本地磁盘在windows文件管理器输入smbd服务器linux的IP即可看到共享目录ubuntu查看安装的包:dpkg -l查看libavcodec-ffmpeg56包的依赖包:apt-ca...原创 2019-03-28 11:22:24 · 1267 阅读 · 0 评论 -
ubuntu安装/查看已安装包的方法
本文转自:https://blog.csdn.net/yessharing/article/details/55806090自己折腾ubuntu安装包来着, 发现一篇文章非常实用, 将apt-get和dpkg等命令的参数讲解非常全面. 于是转载过来. 中文的比英文的帮助看着还是顺手一点. 原文链接:http://www.cnblogs.com/forward/archive/2012/01/...转载 2019-03-27 15:56:25 · 709 阅读 · 0 评论 -
gdb调试
本文转自:https://blog.csdn.net/sunxiaopengsun/article/details/72974548gdb调试coredump初步尝试 gdb打开core文件的格式为 gdb程序名(包含路径) core*(core文件名和路径),如下截图 如上,gdb打开core文件时,有显示没有调试信息,因为之前编译的时候没有带上-g选项,没有调试信...转载 2018-09-04 10:52:32 · 515 阅读 · 0 评论 -
Linux下so动态库查看与运行时搜索路径的设置
本文转自:https://blog.csdn.net/renwotao2009/article/details/51398739ldd命令linux 下可以使用ldd查看可执行文件所需要的动态链接库(*.so)。 注:下文用so代替动态链接库文件。// 举个例子~$ ldd /bin/ls linux-vdso.so.1 => (0x00007ffe0638600...转载 2018-08-02 19:57:20 · 570 阅读 · 0 评论 -
Linux头文件和库的搜索路径
本文转自:https://blog.csdn.net/pwl999/article/details/782193741.1、glibc安装时.so库文件和.h头文件都安装到什么文件夹,gcc怎么能正确的找到相应的文件夹?当我们在build gcc时设定–prefix=/path/,则gcc安装到/path/,gcc默认会在/path/lib/路径下搜寻库,在/path/include/路径...转载 2018-08-10 15:25:25 · 7592 阅读 · 0 评论 -
修改Ubuntu系统的时区时间日期和scim输入法的安装
Ubuntu系统安装好后,可能默认的时区、时间、日期和我们实际不相符。如何进行修改,其实很简单。进入“系统”->"系统管理"->"时间和日期",将时区修改为asia/shanghai就可以了。原创 2013-09-17 16:05:41 · 726 阅读 · 0 评论 -
grub2配置说明
首先查看系统默认的grub配置情况,/etc/default/grub和/boot/grub/grub.cfg都是grub的配置文件,但/etc/default/grub配置更为简单。一般都在grub进行配置,然后以root身份运行命令:update-grub2将更新的配置写入到grub.cfg文件中。默认grub文件内容为:================================原创 2013-09-17 15:23:15 · 5177 阅读 · 0 评论 -
Linux内核编译详解
一、实验目的学习重新编译Linux内核,理解、掌握Linux内核和发行版本的区别。 二、实验内容在Linux操作系统环境下重新编译内核。实验主要内容:A. 查找并且下载一份内核源代码,本实验使用最新的Linux内核2.6.36。B. 配置内核。C. 编译内核和模块。D. 配置启动文件。本次实验环境是Linux2.6.35内核的转载 2013-09-17 12:20:18 · 878 阅读 · 0 评论 -
Linux下软件安装方法总结
Linux下软件安装方法总结: 一、rpm包安装方式步骤: 引用:1、找到相应的软件包,比如soft.version.rpm,下载到本机某个目录; 2、打开一个终端,su -成root用户; 3、cd soft.version.rpm所在的目录; 4、输入rpm -ivh soft.version.rpm 二、deb包安装转载 2013-09-17 12:23:43 · 603 阅读 · 0 评论 -
使用Automake和Autoconf生成Makefile
automake 所产生的 Makefile 除了可以做到程序的自动编译和链接外,还可以用来生成各种文档(如manual page、info文件),可以将源代码文件包装起来以供发布。所以程序源代码所存放的目录结构最好符合GNU的标准惯例。下面以hello.c程序生成Makefile文件作为例子。1,在当前目录下创建一个名为hello的子目录。hello这个目录用于存放 hello.c这个程序及转载 2013-09-10 15:08:45 · 619 阅读 · 0 评论 -
禁用Ubuntu Desktop的图形界面,只启动文本模式的命令行
背景描述有两个虚拟机系统,虚拟机1是Ubuntu,虚拟机2是CentOS。在虚拟机1中装有DB2,Ubuntu桌面版默认开启图形,感觉很占内存,所以就想给关掉,用纯粹的命令行模式。开始行动Google的结果里有这样一种做法,就是把下面文件中的“/etc/X11/default-display-manager”注释掉,也有说是注释后添加一行新的内容“false”。我的做法是直转载 2013-09-10 08:32:13 · 1711 阅读 · 0 评论