c
DXT00
这个作者很懒,什么都没留下…
展开
-
Linux ulimit命令
Linux ulimit命令转自:https://www.runoob.com/linux/linux-comm-ulimit.htmlLinux ulimit命令用于控制shell程序的资源。ulimit为shell内建指令,可用来控制shell执行程序的资源。语法ulimit [-aHS][-c <core文件上限>][-d <数据节区大小>][-f <文件大小>][-m <内存大小>][-n <文件数目>][-p <转载 2021-02-28 16:18:58 · 200 阅读 · 0 评论 -
Linux中mprotect()函数的用法
Linux中mprotect()函数的用法转自:https://blog.csdn.net/Roland_Sun/article/details/33728955在Linux中,mprotect()函数可以用来修改一段指定内存区域的保护属性。函数原型如下:#include <unistd.h>#include <sys/mmap.h>int mprotect(const void *start, size_t len, int prot);mprotect()转载 2021-02-28 15:38:41 · 2633 阅读 · 1 评论 -
strace 跟踪进程中的系统调用
转自:https://linuxtools-rst.readthedocs.io/zh_CN/latest/tool/strace.htmlstrace 跟踪进程中的系统调用strace常用来跟踪进程执行时的系统调用和所接收的信号。 在Linux世界,进程不能直接访问硬件设备,当进程需要访问硬件设备(比如读取磁盘文件,接收网络数据等等)时,必须由用户态模式切换至内核态模式,通过系统调用访问硬件设备。strace可以跟踪到一个进程产生的系统调用,包括参数,返回值,执行消耗的时间。6.1. 输出参数转载 2021-02-28 14:50:22 · 1137 阅读 · 0 评论 -
Linux 下的两个特殊的文件 -- /dev/null 和 /dev/zero 简介及对比
1、概论 -- 来自维基的解释/dev/null : 在类Unix系统中,/dev/null,或称空设备,是一个特殊的设备文件,它丢弃一切写入其中的数据(但报告写入操作成功),读取它则会立即得到一个EOF。在程序员行话,尤其是Unix行话中,/dev/null 被称为位桶(bit bucket)或者黑洞(black hole)。空设备通常被用于丢弃不需要的输出流,或作为用于输入流的空文件。这些操作通常由重定向完成。/dev/zero : 在类UNIX 操作系统中, /dev/zero 是一个特殊的文件转载 2020-06-17 15:41:41 · 440 阅读 · 0 评论 -
apue笔记--第13章 守护进程
守护进程(daemon)是长期存在的一种进程-->在系统引导启动时装入,仅在系统关闭时终止该版本的Linux使用一个名为 kthreadd 的特殊内核进程来创建其他内核进程,所以 kthreadd 表现为其他内核进程的父进程创建守护进程 code 13_1/* 创建守护进程output:kali@kali:~/Desktop/Linux Study/Hellos/Chapter13$ ps -ajx |grep 7014 1 7014 701原创 2020-06-18 12:06:59 · 266 阅读 · 0 评论 -
apue笔记--第11章 线程
比较线程ID:#include <pthread.h>int pthread_equal(pthread_t tid1,pthread_t tid2)获取自身线程ID#include <pthread.h>pthread_t pthread_self(void);原创 2020-06-17 12:18:52 · 213 阅读 · 0 评论 -
c 函数指针
typedef void Sigfunc(int);Sigfunc *signal(int, Sigfunc *);解释: 这里的形式和常规的不太一样,在常规的typedef中,更类似于:typedef double wage; //创建一个叫wage的别名,其实wage就是double的意思但是在这里,typedef void Sigfunc(int);在这里的意思是定义一种指针类型Sigfunc,它是一种指向函数void (int) 的指针,也就是说Sigfunc表示.转载 2020-06-14 10:25:25 · 268 阅读 · 0 评论 -
apue笔记-第8章 进程控制
swapper 进程(系统进程):ID = 0,只负责调度进程,并不执行磁盘上的任何程序init 进程:ID = 1,负责读取与系统有关的初始化文件。init进程不会终止。它是一个普通的用户进程,以超级用户特权运行。/sbin/init...原创 2020-06-11 10:54:57 · 202 阅读 · 0 评论 -
关于%*.*s
小数点.后“*”表示输出位数,具体的数据来自参数表printf格式字符串中,与宽度控制和精度控制有关的常量都可以换成变量,方法就是使用一个“*”代替那个常量,然后在后面提供变量给“*”。同样,小数点.前也可以添加*,也要用户输入一个位宽值来代替,表示输出的字符所占位宽。也就是说,前面定义输出总宽度,后面定义输出字符个数。举例:#include <cstdio> #include <iostream> int main() {转载 2020-06-09 16:49:04 · 160 阅读 · 0 评论 -
fork() 创建10个进程
#include <stdio.h>#include <stdlib.h>int main(int argc, char const *argv[]){ pid_t pid = fork(); int parent_id; if(pid>0){ parent_id = getpid(); child_cnt=1; } else if(pi...原创 2019-03-16 12:34:56 · 2220 阅读 · 0 评论 -
printf缓冲问题与 exit(),_exit()
转自:https://blog.csdn.net/shanshanpt/article/details/7385649Linux中有缓冲IO,对应于每个打开的文件都会有一片缓冲区。每次写文件时都会写入到内存中的缓冲区,等到满足一定条件时,(例如缓冲区已满,或遇到特定字符,如"\n"),再将缓冲区的内容一次性写入文件。printf有行缓冲例子1,行缓冲没满,没有\nprintf("...转载 2019-03-16 19:59:55 · 512 阅读 · 0 评论 -
《Linux 编程 c》学习笔记--信号
Linux共有64个信号类型:信号分类:1.不可靠信号(非实时)编号1~31的信号,不支持排队,可能造成信号丢失2个特殊信号:SIGSTOP(19) : 中断进程的执行,对应键盘的输出为“Ctrl +C”SIGKILL(9) : 强制进程退出,对应键盘的输出为“Ctrl +\”SIGSTOP和SIGKILL不允许被捕捉,忽略或者阻塞!2.可靠信号 (实时)编...原创 2019-03-17 00:17:02 · 201 阅读 · 0 评论 -
《Linux 编程 c》学习笔记--管道
管道是半双工的,通常来说,只能在具有相同祖先的进程间使用,例如(父子进程,兄弟进程)数据读出后,管道中就没有数据了。管道操作符:|格式:命令A | 命令B | 命令C... | 命令N前一个命令的输出作为后一个命令的输入例如:kill - l | grep SIGKILL在信号列表中查找SIGKILL管道结构:注意!管道位于内核缓冲区,用环形队列来实现...原创 2019-03-17 18:58:48 · 318 阅读 · 0 评论 -
《Linux 编程 c》学习笔记--IPC
IPC包括:消息队列、信号量、共享内存IPC特点:1.IPC由内核维护,存放在内核中1.随内核持续,IPC不会自我删除,停止使用的IPC结构会一直保存在内核中,直到内核重启或者显示删除该对象。关键字 key_t:唯一标识一个IPC,可以由ftok()函数生成消息队列:创建消息队列#include <stdio.h>#include <sys/...原创 2019-03-18 13:47:41 · 326 阅读 · 0 评论 -
memset,memcpy 函数
memsetvoid *memset(void *str, int c, size_t n)memset作用是吧n个c字符复制到字符串str的前n个位置:#include <stdio.h>#include <string.h>int main(int argc, char const *argv[]){ char des[]="this...转载 2019-03-15 20:28:14 · 348 阅读 · 0 评论