
Linux
文章平均质量分 70
JuggLee
never say never!
展开
-
Linux迭代调用共享动态库导致segment fault
项目需要我编写了一个原创 2014-10-30 10:52:05 · 3122 阅读 · 1 评论 -
linux找不到动态链接库 .so文件的解决方法
http://www.cnblogs.com/xudong-bupt/p/3698294.html如果使用自己手动生成的动态链接库.so文件,但是这个.so文件,没有加入库文件搜索路劲中,程序运行时可能会出现找不到动态链接库的情形。可以通过ldd命名来查看可执行文件依赖的动态链接库,如下(其中D为可执行程序): 其中的libjson_linux-gcc-4.6_libmt.so转载 2016-08-05 13:47:16 · 2118 阅读 · 0 评论 -
Linux文件权限标志uid gid
首先我们来熟悉一下linux系统中文件属性。Linux 文件或目录的属性主要包括:文件或目录的节点、种类、权限模式、链接数量、所归属的用户和用户组、最近访问或修改的时间等内容;[root@localhost ~]# ls -lih总计 104K2408949 -rwxr-xr-- 1 root root 7 04-21 12:47 lsfile.sh2408258 lrwx原创 2015-12-15 17:05:29 · 9526 阅读 · 0 评论 -
linux system函数返回值问题
http://cooliron.blog.163.com/blog/static/124703138201310602355497/system函数对返回值的处理,涉及3个阶段:阶段1:创建子进程等准备工作。如果失败,返回-1。阶段2:调用/bin/sh拉起shell脚本(备注),如果拉起失败或者shell未正常执行结束,原因值被写入到status的0~7比特位中。转载 2016-01-06 17:13:28 · 892 阅读 · 0 评论 -
linux动态库多层级调用
这是一个小知识点,今天拿出来说说。我们又一个应用test,它调用了一个动态库so1.so,而这个so1.so又调用了so2.so。so1.so的编译命令行gcc -O so2.so -lso1 -lrt -lstdc++test的编译命令行gcc -O test -lso1 -lrt -lstdc++会报错,说是在so1.so中找不到一些接口定义,而这些接口定义是在so2.so中实现的。原创 2016-01-20 13:58:23 · 1226 阅读 · 0 评论 -
Linux普通用户操作root资源
了解了Linux下文件的SUID和SGID后我们就可以解释为什么普通用户也能调用/usr/bin/passwd命令来修改/etc/passwd了。[root@RD224 uid_gid]# ll /usr/bin/passwd /etc/passwd-rw-r--r-- 1 root root 1738 Dec 10 08:40 /etc/passwd-r-s--x--x 1 roo原创 2015-12-15 17:36:02 · 3799 阅读 · 0 评论 -
linux usb驱动整理(将部分源码编译成静态库)
usb驱动在windows系统下只用支持主流的WinXp和Win7,代码就一套,编译出32位和64位两个版本release给用户就ok了。但在linux系统下就不一样了,众多的linux内核版本,即使常用的2.6.y和3.x.y都有好多种,针对每个版本内核都编译一把显然不现实。我们的做法是直接把驱动源码和Makefile发给客户,让客户自己编译。直接源码发给用户显然不符合公司的利益,上周老原创 2015-03-10 18:13:21 · 2153 阅读 · 0 评论 -
kref
kref:内核中最基本的引用计数,头文件“linux/kref.h”,其结构体为struct kref { atomic_t refcount;};有三个操作函数:// 初始化void kref_init(struct kref *kref){atomic_set(&kref->refcount, 1);smp_mb();}// 递增引用计数void kref_get原创 2015-03-11 21:36:42 · 1413 阅读 · 0 评论 -
【C/C++】Linux下使用system()函数一定要谨慎
转载自http://my.oschina.net/renhc/blog/53580曾经的曾经,被system()函数折磨过,之所以这样,是因为对system()函数了解不够深入。只是简单的知道用这个函数执行一个系统命令,这远远不够,它的返回值、它所执行命令的返回值以及命令执行失败原因如何定位,这才是重点。当初因为这个函数风险较多,故抛弃不用,改用其他的方法。这里先不说我用了什么转载 2014-12-09 20:02:37 · 786 阅读 · 0 评论 -
linux系统启动顺序
关于Linux系统启动过程 Linux启动过程 这篇文章讲的很细致。第一步--加载BIOS第二步--读取MBR第三步--Boot Loader / Grub第四步--加载内核第五步--用户层init依据inittab文件来设定运行等级 注:/sbin/init启动之后就是Linux大名鼎鼎id为1的init进程第六步--init进程执行rc.sysin原创 2016-10-26 14:26:10 · 554 阅读 · 0 评论