![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Linux 系统编程
程序猿编码
嘿,编译通过了!
展开
-
如何验证Linux Signal可靠信号与不可靠信号
前面章节已经<Linux下的Signal信号处理及详解>说了,Linux 下的信号分为可靠信号和不可靠信号,或称为实时信号和非实时信号,信号是从1开始编号的,不存在0号信号。0信号用来测试对应进程是否存在或者是否由权限给其发送信号。可靠信号是为了弥补Linux的不可靠信号以及用户可使用的信号太少的缺陷。怎样理解可靠与不可靠?下面要引进几个概述。Linux 不可靠信号还是前面将的例子,SIGINT信号,只是证明它的不可靠性#include <unistd.h>#include原创 2020-05-25 23:35:26 · 1990 阅读 · 0 评论 -
Linux下的Signal信号处理及详解
信号是软件中断。很多比较重要的应用程序都需处理信号。信号提供了一种处理异步事件的方法。举一个不恰当的例子,比如你正兴奋在玩游戏,突然你手机响了,你立马放下手上的游戏,去接听电话。手机随时都会响,随时都会中断你当下的事情。所以称之为异步事件。虽然信号是一种低级的IPC方式,但同时它保持了很简单的特性。在一些大型服务端程序中,很多时候也要考虑信号造成的影响。这里还是值得一学的。下面对信号进行介绍。Linux下信号分两种Linux 下的信号分为可靠信号和不可靠信号,或称为实时信号和非实时信号,对应于 Lin原创 2020-05-20 22:08:53 · 4536 阅读 · 0 评论 -
Linux下正确运用system函数以及理清返回值问题
在linux下想调用shell脚本,肯定对于使用system不陌生?但是使用system()函数一定要谨慎。必要要理清返回值问题以及调用机制。不然很容易造成程序的异常和bug等问题。system函数介绍system的作用是在shell终端执行command。简单的说就是在C中执行system(“pwd”)这行代码的含义就相当于在shell执行pwd一样。这么说还是比较通俗易懂的,下面详细描述system:#include <stdlib.h>int system(const char *原创 2020-05-12 23:24:22 · 1079 阅读 · 0 评论 -
Linux下获取可执行程序运行路径
每个进程都有一个当前工作目录,此目录是搜索所有相对路径名的起点。比如,当用户登录到unix系统时,其当前工作目录通常是口令文件在/etc/passwd中。当前工作目录是进程的一个属性,起始目录是登录名的一个属性。在C语言中,可以有多个函数可以用于获取目录的操作。getcwd获取当前工作目录我们需要一个函数,它从当前工作目录(.)开始,用…找到其上一级目录,然后读其目录项,直到该目录项中的i节...原创 2020-05-01 22:12:08 · 5967 阅读 · 0 评论 -
Linux文件I/O操作(open,close,read,write,lseek)
Linux系统中,一切皆文件,对所有外部设备的操作,都可以抽象成对文件的读写。什么是文件描述符?对于内核而言,所有打开的文件都通过文件描述符引用。文件描述符是一个非负整数。通常0是标准输入,1是标准输出,2是标准错误。正是有了它们,你的简单程序才可以从控制台读入数据,输出日志,输出错误打印等等。当打开一个现有文件或创建一个新文件时,内核向进程返回一个文件描述符。当读、写一个文件时。使用ope...原创 2020-04-06 11:06:30 · 1330 阅读 · 0 评论 -
认真理一理这些奇怪缓冲问题
上一篇《不可不知的Linux中三种缓冲模式》中说到了三种缓冲类型,这一篇主要讲与缓冲相关的函数,这些函数可以修改默认的缓冲类型,及在实际中可能遇到的问题。与缓冲相关的函数我们知道标准错误永远是无缓冲的。当标准输入输出指向的是交互式设备(如终端)的时候,它们是行缓冲的。若不是则是全缓冲的。那么这些默认的缓冲类型如何修改?其实可以通过这些函数修改:#include<stdio.h>...原创 2020-04-05 17:57:43 · 383 阅读 · 0 评论 -
不可不知的Linux中三种缓冲模式
今天来说说缓冲的事。也许你已经听说过三种缓冲模式。标准I/O库的缓冲主要分为3种:全缓冲、行缓冲和不缓冲。今天就3种缓冲写了一些示例,以帮助理解。I/O文件流的缓冲类型标准IO提供缓冲的目的是为了通过减少使用read和write调用的次数来提高IO读写的效率,它对每个IO流自动的进行缓冲处理,从而避免了用户程序在使用read和write需要考虑的这一点。因为read和write是系统调用。《可...原创 2020-04-05 14:50:54 · 1624 阅读 · 0 评论 -
Linux 系统调用和库函数的区别
从实现着的角度来看,系统调用和库函数之间有根本的区别,但从用户的角度来看,其区别并不重要。系统调用和库函数都以C函数的形式出现,两者都是为应用程序提供服务。什么是系统调用和库函数?系统调用系统调用(system call)是操作系统内核提供的函数,在内核态运行(kernel mode),是操作系统为用户提供的一些接口。它通过软中断向内核态发出一个明确的请求。有一些任务需要进程跑在内核态才能执...原创 2020-03-19 18:08:28 · 1359 阅读 · 0 评论 -
Linux下进程的替换及exec函数族
什么是进程替换进程的替换简单来讲就是将进程的代码替换为另一个程序的代码。但是进程还是原先的进程,只不过内容换掉而已。而exec 函数工作是将当前进程替换为一个新进程。可以根据指定的文件名或者路径找到可执行文件。请注意:进程的替换并不是创建新的进程,只是替换而已。创建新的进程请选择fork或者vfork。exec函数族原型及代码示例#include <unistd.h>ext...原创 2019-10-13 11:48:12 · 799 阅读 · 0 评论