![](https://img-blog.csdnimg.cn/20201014180756913.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
linux
文章平均质量分 59
wakeupwakeup
这个作者很懒,什么都没留下…
展开
-
linux信号---sigacion结构2【转】
这个很详细。如果你有耐心看的话,很不错。structsigaction { #ifdef __USE_POSIX199309 union { __sighandler_t sa_handler; void (*sa_sigaction) (int, siginfo_t原创 2016-01-14 09:08:34 · 493 阅读 · 0 评论 -
linux多线程信号总结
linux多线程信号总结(一)1.在多线程环境下,产生的信号是传递给整个进程的,一般而言,所有线程都有机会收到这个信号,进程在收到信号的的线程上下文执行信号处理函数,具体是哪个线程执行的难以获知。也就是说,信号会随机发个该进程的一个线程。2signal函数BSD/Linux的实现并不在信号处理函数调用时,恢复信号的处理为默认,而是在信号处理时阻塞此信号,直到信号处理函数返回。其他实现转载 2016-01-14 09:11:36 · 233 阅读 · 0 评论 -
[原创]vmware中ubuntu无法访问共享…
网上说的基本都是open-vm-dkms,试了几次都不行。直到如下:sudo vmware-config-tools.pl共享成功了!!!原创 2016-01-14 09:11:39 · 606 阅读 · 0 评论 -
[原创]codeblocks没有前进后退的解…
之前用ubuntu 12.04,装了codeblocks后发现没有前进后退很麻烦。我以为是版本太旧,但是也装不了更新的,需要依赖一堆没有装的包,改用QtCreator去了。不久前装了ubuntu15.04,装完codeblocks后发现竟然又是没有前进后退的功能。尼玛坑爹啊。今天终于发现原来要装codeblocks-contrib。sudo apt-getinstall cod原创 2016-01-14 09:11:42 · 1197 阅读 · 0 评论 -
[原创]Linux下undefined refe…
对于初学者用Makefile来编译程序的时候,时不时会出现undefinedreference的错误,除了真的没有相关函数或变量的定义的原因之外,还有可能是你Makefile里的编译命令写的顺序不对。 要解决这个顺序问题,首先应该了解一下链接器是如何解析符号引用的。 以下摘自《深入理解计算机系统第2版》: 在符号解析阶段,链接器从左到右按照它们在编译器驱动程序原创 2016-01-14 09:11:44 · 398 阅读 · 0 评论 -
透过 Linux 内核看无锁编程
非阻塞型同步 (Non-blocking Synchronization) 简介如何正确有效的保护共享数据是编写并行程序必须面临的一个难题,通常的手段就是同步。同步可分为阻塞型同步(BlockingSynchronization)和非阻塞型同步( Non-blocking Synchronization)。阻塞型同步是指当一个线程到达临界区时,因另外一个线程已经持有访问该共享数据的锁,从转载 2016-01-14 09:11:47 · 288 阅读 · 0 评论 -
GCC的符号可见性——解决多个…
问题最近项目遇到一些问题,场景如下主程序依赖了两个库libA的funcA函数和libB的funcB函数。示意的代码(main.cpp)如下:#include int funcA(int, int);int funcB(int, int);int main() { printf("%d,", funcA(2, 1)); printf("%d\n", func转载 2016-01-14 09:11:49 · 1642 阅读 · 0 评论 -
linux下动态库的符号冲突、…
在同客户做对接时遇到了符号冲突的问题。我司为客户提供sdk包供开发使用,就是几个so文件,在so文件中我司封装了tinyxml2这个库,客户再做开发时也时候用了tinyxml2这个库,但是所使用的版本是不同的,造成了再运行时,会崩溃。应该是在程序运行时,先加载了他们的tinyxml库,然后我们的sdk在寻找tinyxml库的相关符号是找到的是他们库的符号。 SIGSEGV : 段错误转载 2016-01-14 09:11:52 · 534 阅读 · 0 评论 -
Linux下高并发socket最大连…
1、修改用户进程可打开文件数限制在Linux平台上,无论编写客户端程序还是服务端程序,在进行高并发TCP连接处理时,最高的并发数量都要受到系统对用户单一进程同时可打开文件数量的限制(这是因为系统为每个TCP连接都要创建一个socket句柄,每个socket句柄同时也是一个文件句柄)。可使用ulimit命令查看系统允许当前用户进程打开的文件数限制:[speng@as4 ~]$ ulimit转载 2016-01-14 09:11:54 · 195 阅读 · 0 评论 -
[原创]pthread_mutex_lock ca…
RT。pthread_mutex_lock等函数在man中都找不到。解决办法:sudo apt-get install manpages-posix-dev原创 2016-01-14 09:11:57 · 212 阅读 · 0 评论 -
虚拟机增加磁盘大小
我用的是VMware workstation 10。首先现在vmware中增加磁盘空间大小。点击虚拟机-》设置-》硬盘-》实用工具。。。这样增加了之后只是增加了实际可用的空间,但是在虚拟机中的系统的分区大小是没改变的。我安装的虚拟机为ubuntu 12.04, 没有分区。。。要扩展/dev/sda1,要使用分区修改工具:gparted(http://ja原创 2016-07-20 10:59:48 · 1094 阅读 · 1 评论 -
Linux内核态抢占机制分析
作者:SAE团队 朱荣泽 【摘要】本文首先介绍非抢占式内核(Non-Preemptive Kernel)和可抢占式内核(PreemptiveKernel)的区别。接着分析Linux下有两种抢占:用户态抢占(User Preemption)、内核态抢占(KernelPreemption)。然后分析了在内核态下:如何判断能否抢占内核(什么是可抢占的条件);何时触发重新调度(何时设置可抢占条转载 2016-01-14 09:11:34 · 285 阅读 · 0 评论 -
内核抢占
为了更好地理解内核代码是如何执行的,我们借用ULK-3中的思想,把内核看作必须满足两种请求的侍者:一种请求来自顾客,另一种请求来自数量有限的几个不同的老板。对不同的请求,侍者采用如下的策略:1. 老板提出请求时,如果侍者正空闲,则侍者开始为老板服务,这是空闲情况。2. 如果老板提出请求时侍者正在为顾客服务,那么侍者停止为顾客服务,开始为老板服务,这是高优先级抢占低优先级情况。3.如转载 2016-01-14 09:11:31 · 356 阅读 · 0 评论 -
Posix多线程编程—线程属性【转】
一.线程属性线程具有属性,用pthread_attr_t表示,在对该结构进行处理之前必须进行初始化,在使用后需要对其去除初始化。我们用pthread_attr_init函数对其初始化,用pthread_attr_destroy对其去除初始化。1.名称:pthread_attr_init/pthread_attr_destroy功能:对线程属性初始化/去除初始化头文件:#include原创 2016-01-14 09:08:39 · 201 阅读 · 0 评论 -
linux 查找目录或文件
查找目录:find /(查找范围) -name '查找关键字' -type d查找文件:find /(查找范围) -name 查找关键字 -print 如果需要更进一步的了解,可以参看Linux的命令详解。这里摘抄如下: ·find path -option [ -print ] [ -exec -ok command ] {} \;#-print 将查找到的文件输出转载 2016-01-14 09:10:39 · 247 阅读 · 0 评论 -
linux 单引号,双引号…
单引号目的: 为了保护文字不被转换.除了他本身. 就是说除去单引号外,在单引号内的所有文字都是原样输出.1. [root@jszwl161 SP49EP9]# echo '$*> $*>2. [root@jszwl161 SP49EP9]# echo 'she is crying: "help"' she is crying:"help"3. [root@j转载 2016-01-14 09:10:41 · 374 阅读 · 0 评论 -
Linux $( )与${ }的区别
初学者也许会遇到这个问题~ $( )的用途和反引号` `一样,用来表示优先执行的命令,比如ls -l $(locate build.xml),表示先找到build.xml的位置,然后再列出详细信息。 ${ }就是取变量了,比如:echo ${PATH} 就是这样~转载 2016-01-14 09:10:44 · 417 阅读 · 0 评论 -
linux 重定向命令
linux 重定向命令标准输入,输出和错误---------------------------------文件文件 描述符---------------------------------输入文件—标准输入 0输出文件—标准输出 1错误输出文件—标准错误 2--------------------------------转载 2016-01-14 09:10:47 · 220 阅读 · 0 评论 -
linux下搭建基于Eclipse的ar…
经过一段时间的摸索,终于把linux下搭建基于Eclipse的arm的开发环境给搭建起来了,做下笔记,以便日后查看。0. 用的linux版本是Ubuntu 9.04 用的板子是FriendlyARM s3c24401. 准备好相应的软件包: arm-linux-gcc-3.4.1.tar.bz2(网上现成的交叉编译工具,有兴趣的话也可以自己重头编译)转载 2016-01-14 09:11:03 · 277 阅读 · 0 评论 -
[原创]解决zlib.h:no such&nb…
今天在linux装Qt库时,出现了error: zlib.h:no such file or directory去看了下出错的文件,里面这么一句#include没这头文件?那就给它呗。然后去搜索了下zlib.h,发现是属于zlib的。去下个zlib。zlib地址:http://www.zlib.net/然后zlib标准安装指导:zlib library files are pl原创 2016-01-14 09:11:06 · 327 阅读 · 0 评论 -
Linux权限位
一、UNIX下关于文件权限的表示方法和解析UNIX下关于文件权限的表示方法和解析 SUID 是 Set User ID, SGID 是 Set GroupID的意思。 UNIX下可以用ls -l 命令来看到文件的权限。用ls命令所得到的表示法的格式是类似这样的:-rwxr-xr-x。下面解析一下格式所表示的意思。这种表示方法一共有十位: 9 8 7 6 5 4 3转载 2016-01-14 09:11:20 · 302 阅读 · 0 评论 -
深入分析Linux自旋锁
前言: 在复习休眠的过程中,我想验证自旋锁中不可休眠,所以编写了一个在自旋锁中休眠的模块。但是在我的ARMv7的单核CPU(TI的A8芯片)中测试的时候,不会锁死,并且自旋锁可以多次获取。实验现象和我对自旋锁和休眠的理解有出路。 我后来我将这个模块放到自己的PC上测试,成功锁死了,说明我的模块原理上没有问题。但是为什么在ARM上会这样呢???后来我将模块给了我的两个同事转载 2016-01-14 09:11:26 · 301 阅读 · 0 评论 -
真正的上锁前,为何要调用pr…
static inline void raw_spin_lock(raw_spinlock_t *lock){ preempt_disable(); do_raw_spin_lock(lock);}在真正的上锁前,为何要调用preempt_disable()来关闭抢占?==》1.如果内核可抢占, 单CPU process1通过系统调用进入内核态,如果转载 2016-01-14 09:11:28 · 256 阅读 · 0 评论 -
ubuntu下使用QtCreator调试hotspot源码
首先你需要学习如何使用openjdk7的源码中的makefile来编译hotspot虚拟机。这个过程如何操作就省略了。《深入理解java虚拟机》一书及网上均有很多教程。现在假设你已经完成了这一步骤,并生成了debug版本的hotspot虚拟机。首先我们使用QtCreator新建一个Plain C++ Project。新建完后添加hotspot的源码,这个有点麻烦,需原创 2016-07-20 16:26:00 · 648 阅读 · 0 评论