pipe trick
2019-10-30
命名管道以只读打开,那么当写入者结束时,read一直返回0。解决办法:1 以读写方式打开,保证至少有一个写者。2 重新打开命名管道。http://www.ece.eng.wayne.edu/~gchen/ece5650/lecture3.pdf
Permission in linux
2019-10-30
Process UID, EUID对于内核来讲,只有User Identifier,它是一个整数,存储在进程信息中。内核不关心用户名。用户名是文件系统中的一个文件映射UID到到一个字符串实现。Real UID,也即UID,是运行进程的用户,Effective user ID,也即EUID,内核使用E
fork前后的内存RSS值差异
2020-9-18
最近在做内存优化,发现了一个现象,一个共享库,在一个进程中,不占用RSS,但是另外一个进程却占据1M多的RSS,但是另外一个进程却没有使用这个共享库的接口。为此,写了一个demo程序,啥也不干#include #include int main(int argc
nohup工作原理
2020-12-26
nohup是让一个进程忽略SIGHUP信号。语法1nohup COMMAND [ARG]如果标准输入是一个终端,那么标准输入被重定向到一个unreadable file。如果标准输出是一个终端,那么输出被追加到nohup.out。如果标准错误是一个终端,那么背重定向到标准输出。为了保存输出到一个文件
目录的权限
2024-9-30
读权限允许列出目录下面的文件,即允许读取目录的内容。没有读权限,ls目录会失败。$ ls 134ls: cannot open directory '134': Permission denied但是可以读取目录中子文件的内容:$ cat 134/a写权限允许修改目录的内容(如新建、删除子文件),
Linux编程接口:Process Credentials
2021-2-22
每个进程都有一组关联的ID:Real user id and group idEffective user id and group idsaved set-user-id and saved set-group-idfilesystem user id and group idsupplement
Linux编程接口:Signals
2021-2-26
信号综述 信号分为标准信号(standard signals)和实时信号(realtime signals)。标准信号从信号1到31。实时信号从宏SIGRTMIN到SIGRTMAX。在支持NPTL线程的系统上,SIGRTMIN的值是34,SIGRTMAX的值是64。32/33这2个也是实时信号
Linux编程接口:Processes
2021-2-27
Process createfork,execve, exit, _exit, wait这个就不讲了,其它很多书籍都讲了。vfork是一种更快的fork,它和父进程共享内存,不创建page table,没有自己的虚拟地址空间,通常vfork之后立即执行execve。Process Terminati
bind mount 将子目录挂载到一个挂载点
2021-5-7
可以设备或者分区,可以先将其挂载到一个挂载点。子目录可以通过bind方式挂载到另外的挂载点。# mkdir tmpfs# mount -t tmpfs none tmpfs# mkdir tmpfs/123# mkdir 2# mount --bind tmpfs/123/ 2/这样123子目录就挂
kernel log
2021-6-7
内核日志存储在一个内核环形缓存区,内核日志有8个等级:0 KERN_EMERG 1KERN_ALERT2KERN_CRIT3KERN_ERR4KERN_WARNING5KERN_NOTICE6KERN_INFO7KERN_DEBUG1 设置内核日志等级注意不管内核日志等级是多少,日志都会写入环形缓存
Copyright © linuxdev.cc 2017-2024. Some Rights Reserved.