
unix高级编程
文章平均质量分 75
yangzai_0551
码农
展开
-
core分析
2、CORE分析经过上面的铺垫,步入正题:如何进行core文件分析。在这之前,还需要简单介绍一些相关的知识:2.1、CORE产生原理应用程序在运行过程中由于各种异常导致退出,在满足一定条件下产生一个core文件。通常core文件包含了程序运行时内存、寄存器状态、堆栈指针、内存信息以及函数调用堆栈信息。core就是程序当前工作转改存储生成的一个文件,通过工具分析这个文件,可以辅助定位异常。异常指针访问等异常会产生信号,内核在收到异常信号时产生core。core关注的信号列表各信号含义如下signal.原创 2022-06-13 20:20:32 · 5926 阅读 · 1 评论 -
linux启动进程三种方法
一、system函数-调用shell进程,开启新进程system函数,是通过启动shell进程,然后执行shell命令进程。函数原型:int system(const char *string);string:shell命令字符串返回值:成功返回命令退出码,无法启动shell,返回127错误码,其他错误,返回-1。#include <stdlib.h>#include <stdio.h> int main(){ system("ls"); pri原创 2021-01-30 16:27:21 · 5782 阅读 · 0 评论 -
mmap接口应用
前言 存储映射I/O使一个磁盘文件与存储空间中的一个缓存相映射。于是当从缓存中取数据,就相当于读文件中的相应字节。与其类似,将数据存入缓存,则相应字节就自动地写入文件。这样,就可以在不使用read和write的情况下执行I/O。为了使用这种功能,应首先告诉内核将一个给定的文件映射到一个存储区域中。这是由mmap函数实现的,接口如下: #include <...转载 2021-01-19 13:57:47 · 490 阅读 · 0 评论 -
多线程的同步方法
一、同步与互斥的概念现代操作系统基本都是多任务操作系统,即同时有大量可调度实体在运行。在多任务操作系统中,同时运行的多个任务可能:都需要访问/使用同一种资源;多个任务之间有依赖关系,某个任务的运行依赖于另一个任务。【同步】:是指散步在不同任务之间的若干程序片断,它们的运行必须严格按照规定的某种先后次序来运行,这种先后次序依赖于要完成的特定的任务。最基本的场景就是:两个或两个以上的进程或线程在运行过程中协同步调,按预定的先后次序运行。比如 A 任务的运行依赖于 B 任务产生的数据。【互斥】:是指转载 2021-01-19 10:34:50 · 835 阅读 · 0 评论 -
孤儿进程和僵尸进程(linux)
一、基本概念在unix/linux中,正常情况下,子进程是通过父进程创建的,子进程在创建新的进程。子进程的结束和父进程的运行是一个异步过程,即父进程永远无法预测子进程 到底什么时候结束。 当一个 进程完成它的工作终止之后,它的父进程需要调用wait()或者waitpid()系统调用取得子进程的终止状态。**孤儿进程:**一个父进程退出,而它的一个或多个子进程还在运行,那么那些子进程将成为孤儿进程。孤儿进程将被init进程(进程号为1)所收养,并由init进程对它们完成状态收集工作。**僵尸进程:**一原创 2021-01-16 13:05:34 · 153 阅读 · 0 评论 -
unix编程kill、raise、abort、alarm
一、kill函数kill()函数同读者熟知的kill系统命令一样,可以发送信号给进程或进程组(实际上,kill系统命令只是kill()函数的一个用户接口)。这里需要注意的是,它不仅可以中止进程(实际上发出SIGKILL信号),也可以向进程发送其他信号。1、函数原型#include <signal.h>#include <sys/types.h>int kill(pid_t pid, int signo);pid > 0: 发送信号给指定的进程pid = 0:原创 2021-01-06 17:15:56 · 350 阅读 · 0 评论 -
fork函数总结
一、概念函数头文件:#include<unistd.h>函数原型:pid_t fork(void);其中pid_t是一个宏定义:#define pid_t int返回值:fork函数调用一次返回两次:在父进程中返回生成子进程的id(因为父进程不止拥有一个子进程)在子进程返回一个整数0(因为子进程只有一个父进程,可以通过调用getppid()得到父进程的进程ID)当然,如果创建失败,则返回-1;在网上看到这样几句话分享给大家:fork()之后exec之前两个进程用的是相同的物理空原创 2021-01-04 20:24:09 · 242 阅读 · 0 评论