Linux
文章平均质量分 55
kc专栏
深入探索android Framework层代码,博客持续更新中!!!
展开
-
使用gdb 查看coredump堆栈信息
简介core dump 一般是在segmentation fault(段错误)的情况下产生的文件,需要通过ulimit来设置才会得到的。调试的话输入: gdb filename core filename就是产生core文件的可执行文件,core就是产生的dump文件查看栈信息—————当程序被停住了,你需要做的第一件事就是查看程序是在哪里停住的。当你的程序调用了一...原创 2020-04-15 11:03:17 · 11918 阅读 · 0 评论 -
linux ldconfig命令,环境变量文件配置详解
ldconfig参考:http://man.linuxde.net/ldconfighttps://blog.csdn.net/chenzixun0/article/details/56278632主要是在默认搜寻目录/lib和/usr/lib以及动态库配置文件/etc/ld.so.conf内所列的目录下,搜索出可共享的动态链接库(格式如lib*.so*),进而创建出动态装入程序(ld...转载 2019-10-16 14:42:40 · 609 阅读 · 0 评论 -
Linux设备驱动相关
查看注册设备我们可以查看proc/devices文件可以获知系统中注册的设备,第一例是主设备号,第二例是设备名,一般同一类设备的主设备号相同:Character devices: 1 mem 4 /dev/vc/0 4 tty 4 ttyS 5 /dev/tty 5 /dev/console 5 /dev/ptmx 7 vcs 10 misc 13 in原创 2016-07-13 10:25:04 · 748 阅读 · 0 评论 -
linux openat与open函数区别
open函数与openat函数功能类似,都是打开一个文件1.当path参数是绝对路径,两个函数一致2.当path是相对路径,fd参数指出了相对路径名在文件系统的开始地址,当然fd是通过打开相对路径所在的目录来获取,如下DIR *d = opendir(path);int fd = dirfd(d);3.path是相对参数,fd参数具有特殊值AT_FDCWD,这种情况下,路原创 2016-07-06 17:02:41 · 7940 阅读 · 0 评论 -
Linux 下的两个特殊的文件 -- /dev/null 和 /dev/zero
1、概论 -- 来自维基的解释/dev/null : 在类Unix系统中,/dev/null,或称空设备,是一个特殊的设备文件,它丢弃一切写入其中的数据(但报告写入操作成功),读取它则会立即得到一个EOF。在程序员行话,尤其是Unix行话中,/dev/null 被称为位桶(bit bucket)或者黑洞(black hole)。空设备通常被用于丢弃不需要的输出流,或作为用于输入流转载 2016-06-21 10:27:26 · 4467 阅读 · 0 评论 -
linux sys目录介绍
sysfs 与 /syssysfs 文件系统总是被挂载在 /sys 挂载点上。虽然在较早期的2.6内核系统上并没有规定 sysfs 的标准挂载位置,可以把 sysfs 挂载在任何位置,但较近的2.6内核修正了这一规则,要求 sysfs 总是挂载在 /sys 目录上;针对以前的 sysfs 挂载位置不固定或没有标准被挂载,有些程序从 /proc/mounts 中解析出 sysfs 是否被挂载以及转载 2016-07-07 15:41:52 · 1821 阅读 · 0 评论 -
wait waitpid函数使用
#include /* 提供类型pid_t的定义 */#include pid_t wait(int *status)进程一旦调用了wait,就立即阻塞自己,由wait自动分析是否当前进程的某个子进程已经退出,如果让它找到了这样一个已经变成僵尸的子进程,wait就会收集这个子进程的信息,并把它彻底销毁后返回;如果没有找到这样一个子进程,wait就会一直阻塞在这里,直到有一个出转载 2016-08-19 10:29:13 · 955 阅读 · 0 评论 -
dev目录介绍
1 char Memory devices 1 = /dev/mem Physical memory access 2 = /dev/kmem Kernel virtual memory access 3 = /dev/null Null device 黑洞 4 = /dev/port I/O port access 5 = /dev/zero N原创 2016-07-20 10:03:00 · 1122 阅读 · 0 评论 -
proc文件系统介绍
------------------------------------------------------------------------------ T H E /proc F I L E S Y S T E M---------------------------------------------------------------翻译 2016-07-19 15:13:21 · 8117 阅读 · 1 评论 -
linux去除\r(window中编辑的文本)
vim -b file 二进制贷款文件:%s/^M//g # 注意这里使用Ctrl+V+M输入^M如果不行可以使用:%s/\r//原创 2017-05-17 11:23:22 · 6552 阅读 · 3 评论 -
fcntl设置FD_CLOEXEC标志作用
通过fcntl设置FD_CLOEXEC标志有什么用?close on exec, not on-fork, 意为如果对描述符设置了FD_CLOEXEC,使用execl执行的程序里,此描述符被关闭,不能再使用它,但是在使用fork调用的子进程中,此描述符并不关闭,仍可使用。eg:jamie@jamie-laptop:~$ cat test.c#include #inclu转载 2018-03-06 20:09:44 · 430 阅读 · 0 评论 -
实际用户ID,有效用户ID和设置用户ID(S_ISUID)
看UNIX相关的书时经常能遇到这几个概念,但一直没有好好去理清这几个概念,以致对这几个概念一直一知半解。今天好好区分了一下这几个概念并总结如下。说白了这几个UID引出都是为了系统的权限管理。 下面分别用RUID, EUID,SUID来表示实际用户ID,有效用户ID,设置用户ID。另外用户ID是个整型数,为了说明方便真接使用了用户名来代表不同的UID。先解释一下这几个ID的转载 2018-03-07 09:23:43 · 5977 阅读 · 1 评论 -
vim命令
1. 设置搜索高亮linux vim打开文档搜索字符串时,设置被搜索到字符串高亮显示。有两种方法:1、临时设置:vim打开文档-->命令行形式输入set hlsearch。缺点:关闭文档后,下次打开,又需要重新设置一遍。2、永久设置(推荐):在~/.vimrc中配制vim ~/.vimrc在文件中加上set hlsearch然后保存退出便可。优点:一......原创 2018-09-11 16:07:00 · 439 阅读 · 0 评论 -
Linux中eventfd函数调用解析
从Linux 2.6.27版本开始,新增了不少系统调用,其中包括eventfd,它的主要是用于进程或者线程间的通信(如通知/等待机制的实现)。函数原型: #include int eventfd(unsigned int initval, intflags);参数解释:如果是2.6.26或之前版本的内核,flags 必须设置为0。Flags支转载 2016-07-11 19:04:44 · 1913 阅读 · 0 评论 -
linux文件系统 dup dup2函数
Linux支持各种各样的文件系统格式,如ext2、ext3、reiserfs、FAT、NTFS、iso9660等等,不同的磁盘分区、光盘或其它存储设备都有不同的文件系统格式,然而这些文件系统都可以mount到某个目录下,使我们看到一个统一的目录树,各种文件系统上的目录和文件我们用ls命令看起来是一样的,读写操作用起来也都是一样的,这是怎么做到的呢?Linux内核在各种不同的文件系统格式之上转载 2016-04-20 16:11:16 · 666 阅读 · 0 评论 -
linux硬链接 软链接
1.Linux链接概念Linux链接分两种,一种被称为硬链接(Hard Link),另一种被称为符号链接(Symbolic Link)。默认情况下,ln命令产生硬链接。【硬连接】硬连接指通过索引节点来进行连接。在Linux的文件系统中,保存在磁盘分区中的文件不管是什么类型都给它分配一个编号,称为索引节点号(Inode Index)。在Linux中,多个文件名指向同一索引节点转载 2015-07-29 15:15:03 · 635 阅读 · 0 评论 -
linux fstab文件
/etc/fstab是用来存放文件系统的静态信息的文件。位于/etc/目录下,可以用命令less /etc/fstab 来查看,如果要修改的话,则用命令 vi /etc/fstab 来修改。 当系统启动的时候,系统会自动地从这个文件读取信息,并且会自动将此文件中指定的文件系统挂载到指定的目录。下面我来介绍如何在此文件下填写信息。 文件示例一个转载 2015-07-25 08:57:48 · 1239 阅读 · 0 评论 -
Linux 挂载概念 理解
Linux 挂载概念 理解 准备知识: 文件系统中的相关目录:dev //设备文件media //挂载媒体设备,如光驱、U盘等mnt //目录是让用户临时挂载别的文件系统,如挂载Windows下的某个分区,ubuntu默认还是挂载在/media目录。磁盘分区:硬盘包括IDE和SCSI两种接口。其中,转载 2015-05-14 17:13:33 · 892 阅读 · 0 评论 -
Linux磁盘分区、挂载
上周在做日志机扩容的时候,发现运维同学将一块硬盘的挂载点没有同以前的日志机保持一致,考虑到这会给日后的维护带来麻烦,于是尝试着手修改,在修改的同时,review 了下之前日志机的挂载配置,发现居然存在随时掉坑的可能。。。至于什么坑,我会在文末说明。so,感觉这事儿虽然简单,也许一条命令就搞定的事情,但是,很多童鞋可能不明就里,纯复制粘贴网上的命令,这很容易给人挖坑埋雷,今天就来聊聊 l转载 2015-11-02 17:02:16 · 1271 阅读 · 0 评论 -
Linux文件系统简介
文件系统是linux的一个十分基础的知识,同时也是学习linux的必备知识。 本文将站在一个较高的视图来了解linux的文件系统,主要包括了linux磁盘分区和目录、挂载基本原理、文件存储结构、软链接硬链接、和常见目录的介绍。相信有了这些知识对于深入的学习linux会有一定的帮助。文章例子主要是基于ubuntu发行版。 如有不对之处请大家多多指出。1.Linux磁转载 2015-11-02 17:18:12 · 492 阅读 · 0 评论 -
Linux INotif机制
一、 引言众所周知,Linux 桌面系统与 MAC 或 Windows 相比有许多不如人意的地方,为了改善这种状况,开源社区提出用户态需要内核提供一些机制,以便用户态能够及时地得知内核或底层硬件设备发生了什么,从而能够更好地管理设备,给用户提供更好的服务,如 hotplug、udev 和 inotify 就是这种需求催生的。Hotplug 是一种内核向用户态应用通报关于热插拔设备一些事件发生的转载 2016-01-26 10:57:38 · 1441 阅读 · 0 评论 -
vim 实用命令 将vim置于后台
我们经常需要实用vim,查看代码,然后又要去查看另一个代码,就要切出去到另外一个目录。如果把这个vim关闭,再去开一个就会显得很麻烦。这里介绍一个很实用的方法:1.将vim置于后台,直接按 ctrl + z可以将当前的vim置于后台2.然后可以去别的目录再打开一个当你需要打开之前的vim的时候3.打jobs命令看当前有哪些vim在后台原创 2016-02-01 10:04:42 · 13737 阅读 · 0 评论 -
epoll详解
一、epoll简介1.1 什么是epollepoll是什么?按照man手册的说法:是为处理大批量句柄而作了改进的poll。当然,这不是2.6内核才有的,它是在2.5.44内核中被引进的(epoll(4) is a new API introduced in Linux kernel 2.5.44),它几乎具备了之前所说的一切优点,被公认为Linux2.6下性能最好的多路I/O就绪通转载 2016-03-17 10:24:26 · 819 阅读 · 0 评论 -
linux proc文件系统
1. /proc目录Linux 内核提供了一种通过 /proc 文件系统,在运行时访问内核内部数据结构、改变内核设置的机制。proc文件系统是一个伪文件系统,它只存在内存当中,而不占用外存空间。它以文件系统的方式为访问系统内核数据的操作提供接口。用户和应用程序可以通过proc得到系统的信息,并可以改变内核的某些参数。由于系统的信息,如进程,是动态改变的,所以用户或应用程序读取proc文件时转载 2016-05-18 08:47:41 · 1548 阅读 · 0 评论 -
建议性锁和强制性锁机制下的锁
首先,建议性锁和强制性锁并不是真正存在的锁,而是一种能对诸如记录锁、文件锁效果产生影响的两种机制。1.建议性锁机制是这样规定的:每个使用文件的进程都要主动检查该文件是否有锁存在,当然都是通过具体锁的API,比如fctl记录锁F_GETTLK来主动检查是否有锁存在。如果有锁存在并被排斥,那么就主动保证不再进行接下来的IO操作。如果每一个进程都主动进行检查,并主动保证,那么就说这些进程转载 2016-05-10 16:58:01 · 957 阅读 · 0 评论 -
sigwait函数
刚开始看sigwait函数,只是知道它是用来解除阻塞的信号,可是使我疑惑的是那么解除了以后为什么线程收到终止信号SIGINT的时候还是没能终止呢?于是网上找了一些资料,总的理解如下所示:sigwait(&set, signo)监听信号集set中所包含的信号,并将其存在signo中。注意:sigwait函数所监听的信号在之前必须被阻塞。sigwait函数将阻塞调用他的线程,直转载 2016-05-09 18:45:42 · 863 阅读 · 0 评论 -
linux:SUID、SGID详解
如果你对SUID、SGID仍有迷惑可以好好参考一下!转载地址:http://www.cnblogs.com/fhefh/archive/2011/09/20/2182155.html由于用户在UNIX下经常会遇到SUID、SGID的概念,而且SUID和SGID涉及到系统安全,所以用户也比较关心这个问题。关于SUID、SGID的问题也经常有人提问,但回答的人一般答得不够详转载 2016-04-26 10:30:20 · 4294 阅读 · 0 评论 -
fflush和fsync的区别
1.fflush函数和fsync函数fflush接受一个参数FILE *.fflush(FILE *);fflush是libc.a中提供的方法,是用来将流中未写的数据传送到内核。如果参数为null,将导致所有流冲洗。fsync接受的时一个Int型的文件描述符。fsync(int fd);fsync是系统提供的系统调用。将数据写到磁盘上2.功能区别原创 2016-04-22 14:22:28 · 1073 阅读 · 0 评论 -
FUSE介绍
这里有一篇fuse的官方文档http://fuse.sourceforge.net/还有一个简单例子:http://fuse.sourceforge.net/helloworld.htmlFUSE的工作原理如图所示。假设基于FUSE的用户态文件系统hello挂载在/tmp/fuse目录下。当应用层程序要访问/tmp/fuse下的文件时,通过glibc中的函数进行系统调用,处理这些转载 2015-07-29 19:33:02 · 5040 阅读 · 0 评论