Linux
文章平均质量分 68
凉冰难消一腔热血
在读通信专业的研究生一枚
展开
-
Linux---进程形成和终止
一、程序是如何称为线程的程序(Program)是为了完成特定任务而准备好的指令序列。要编写C源程序,程序员必须创建包含 C 语句的磁盘文件,这些 C 语句会被组织成函数。一个 C 源文件也科那个包含变量和函数声明、类型和宏定义(例如,typedef),以及预处理命令(例如,#ifdef、#include、#define)。源程序只包含一个 main 函数。 C 编译器会将每个源文件转换成目标文件。然后编译器会将这些目标文件与必要的库相链接,来形成一个可执行模块(Executable Module)。程原创 2021-09-19 14:03:23 · 201 阅读 · 0 评论 -
Linux---fork函数和exec函数
这里主要介绍Unix/Linux中进程创建,fork()函数和exec()函数。原创 2021-09-17 17:57:03 · 3688 阅读 · 0 评论 -
Linux之sigaction函数
一 函数介绍Linux/Unix中的sigaction函数运行调用程序检查或指定与特定信号相关的动作。参数sig用于指定动作的信号编号;参数act是一个指向struct sigaction结构的指针,用于指定要采取的动作,如果act为NULL,对sigaction的调用就不会改变与信号;参数oact是一个指向struct sigaction结构的指针,用于接收与信号相关的前一个动作相关的动作。 如果oact为NULL,对sigaction的调用就不会返回与信号相关的前一个动作。#include原创 2021-05-30 22:59:30 · 734 阅读 · 0 评论 -
Linux中进程环中write函数调用会直接退出(未解决)
该程序可以用来构造由n个进程组成的环,n的值从命令行中获取此时共需要n个管道。需要注意的是,程序只需要一个长度为2(而不是2n)的数组来保存文件的描述符由两个进程组成的环被创建好之后,父进程就会退出,而子进程再次进行分支并在父进程中向管道中输入“1 1”,在子进程中获取并重新输入,以实现斐波那契数列。问题描述在进行执行时,发现输出只有一行,当执行到write函数时,程序会自动退出,没有返回异常,结果如图所示:mrzhi@mrzhi-VirtualBox:~/Desktop/Linux-网络编原创 2021-05-24 17:39:40 · 540 阅读 · 2 评论 -
Linux中的stat函数只能访问当前用户所在目录(提示stat-No such file or directory错误)
问题介绍最近使用Linux C进行编程的时候,当递归读取目录的时候会发现stat函数一直再报错(No such file or directory),经过一晚上的修改bug,发现我的代码中的stat函数只能访问用户当前所在的路径下的文件(即’pwd‘命令所提示的目录)。例如:此时我所在的路径为:/home/mrzhi/Desktop/Linux-网络编程/Unix_systems_programming/Chapter5_File_system结果:可以发现该代码可以正确访问所在路径下的文件,但是原创 2021-05-20 09:20:43 · 6148 阅读 · 0 评论 -
Linux中进程、线程和程序的区别
这里对Linux和Unix中的程序、线程和进程进行说明,以弥补自己的不足:进程的一种流行定义是:一个以及开始执行但还没有终止的程序实例。**程序(Program)**:程序是为了完成特定任务而准备好的指令序列。要编写C源程序,程序员必须创建包含C语句的磁盘文件,这些C语句会被组织成函数。一个C源文件也可能包含变量和函数声明、类型和宏定义,以及预处理命令(例如#ifdef, #define, #include)。源程序只包含一个main函数。C编译器会将每个源文件转换成目标文件。然后编译器会将原创 2021-05-09 10:22:46 · 181 阅读 · 0 评论 -
Linux C之可重入函数
在这里对Linux C编程中的可重入函数进行部分说明。该笔记是为了以后自己使用的时候查看的,可能会有一些错误。如果错误之处,还请多多谅解!可重入函数就是可以在运行期间再次被调用的函数,由于Linux是一个多任务操作系统,在任务执行期间捕捉到信号并对其进行处理时,进程正在执行的指令序列就被信号处理程序临时中断。如果从信号处理程序返回,则继续执行进程断点处的正常指令序列,重新恢复到断点重新执行的过程中,函数所依赖的环境没有发生改变,也就是说这个函数是可重入的,反之就是不可重入的。在进程中断期间,系统.原创 2020-10-28 18:56:26 · 442 阅读 · 0 评论 -
Linux的信号
信号(Signal)是一种软件中断,比如Ctrl+C的退出命令实质上就是使用了信号。信号在Linux操作系统中提供了一种处理异步事件的方法,可以很好地在多个进程之间进行同步和简单的数据交互。目录Linux的信号机制1. 信号的产生2. 信号的处理方式3. 信号的缺陷4. 信号的执行过程5. 信号处理的注意事项Linux的信号机制信号机制是一种使用信号来进行进程之间的传递消息的方法,其中信号的全称为软中断信号,简称软中断。软中断信号(Singal,又简称为信号..原创 2020-10-24 11:47:21 · 3146 阅读 · 0 评论 -
exit和return的区别
1、exit();是整个程序的结束。exit(0):正常运行程序并退出程序; exit(1):非正常运行导致退出程序;2、return(); 是某个函数的结束,并返回结果。return返回函数值,是关键字; exit 是一个函数。 return是语言级别的,它表示了调用堆栈的返回;而exit是系统调用级别的,它表示了一个进程的结束。 return是函数的退出(返回);exit是进程的退出。 return是C语言提供的,exit是操作系统提供的(或者函数库中给出...原创 2020-10-20 16:32:32 · 2934 阅读 · 0 评论 -
流的出错处理
在上篇文章中介绍了fgets、gets、fputs、fread等函数如果调用失败则会返回EOF,但是由于EOF即用于报告文件结束,又用于报告随机出现的错误,因此,为了区分究竟是错误返回还是文件结束返回,有时还需要调用ferror函数来确定是否出现错误,调用feof函数检查是否遇到文件结束。流读取的文档链接:https://blog.csdn.net/weixin_45676049/article/details/109002860一、流的出错处理在大多数应用中,Linux内核都为流(FILE)对原创 2020-10-13 18:31:42 · 715 阅读 · 0 评论 -
Oracle VM VirtualBox中 ubuntu虚拟机扩容方案 虚拟分配空间转换为实际分配空间
最近在Oracle VM VirtualBox中,由于第一次分配的存储空间太小了,于是便在网上找了一份可以扩容的方法。本文转载于:https://blog.csdn.net/NarutoInspire/article/details/82179963如果侵权,则我会立即删除!在使用vbox的过程中,如果在最开始创建vdi的时候创建的vdi分配的空间过小,在使用的过程中,会由于分配的空间不足而导致无法使用的情况。遇到这样的情况对虚拟机的扩容就显得很有必要。 一般在创建vd...转载 2020-10-11 21:38:32 · 4788 阅读 · 6 评论 -
Linux任务前后台的切换
Linux任务前后台的切换这几天在Linux中配置工程环境的时候,有时候需要很长的时间,因为之前记着可以切换到后台运行,但是具体的一些命令有些忘记,这里进行了一些总结,以便为了以后方便查阅Shell支持作用控制,有以下命令实现前后台切换: command& 让进程在后台运行 jobs 查看后台运行的进程 fg %n 让后台运行的进程n到前台来 bg %n 让进程n到后台去 kill %n 杀死job note:"n"为jobs命令查看到的job...原创 2020-10-11 10:05:10 · 726 阅读 · 0 评论 -
Linux中的读写流
因为使用到了Linux中使用流读写,因此这里进行了部分总结以供自己以后翻阅查看!如果错误,请多多指出!一、流读写对流的操作的主要目的是对流所指定的文件进行操作,所以流的读写也是最重要也是最常见的操作,对流的读写操作可以按照操作的缓冲区大小分为三种:字符读写:每次读写一个字符数据,如果流是带缓存的,则由流I/O函数处理所有缓存。 行读写:每当遇到换行符的时候,则将流中换行符之前的内容送到缓冲区中,即每次读写一行。 块(结构)读写:以块(结构)为单位进行读写。1、按照字符读字符读写方式每次原创 2020-10-10 21:43:02 · 651 阅读 · 0 评论 -
Linux的文件操作系统结构
一、Linux文件系统的介绍 Linux采用了目录树的格式来管理所有的文件和目录(在Linux中目录其实也是一个文件);和DOS或Windows不同的时LInux的树形目录中只有唯一的一个根目录“/”(称为根,root),其他目录都是这个根目录衍生的子目录,如图1和图2分别是DOS/Windows和Linux的目录树文件结构。 ...原创 2020-10-04 21:57:04 · 666 阅读 · 0 评论 -
yum提示another app is currently holding the yum lock;...
有时候在使用yum进行安装任务功能时,结果提示# yum -y install vimLoaded plugins: fastestmirrorExisting lock /var/run/pid:another copy is running as pid 1718Another app is currently holding the yum lock; waiting for it to exit... ...此时可能有其他应用正在使用,比如系统升级、刚才进行安装任务时进行了挂起。原创 2020-09-29 17:10:00 · 219 阅读 · 0 评论 -
Linux下如何删除非空目录
在进行非空目录的删除时,我一直以为使用 rmdir 命令即可,但是系统提示该命令不可以删除非空目录经过查阅资料发现删除非空目录需要使用 rm -rf 'filename'其中参数 -f 表示force. 使用了该参数表示强制删除...原创 2020-09-27 21:46:26 · 2300 阅读 · 0 评论 -
LInux中的time处理(C语言)
在Linux系统应用中,经常需要获得当前的时间信息,Linux内核提供了一些相应函数用于操作,对其标准调用格式格式说明如下:#include <time.h>char *asctime(const struct tm *tm);char *asctime_r(const struct tm *tm, char *buf);char *ctime(const time_t *timep);char *ctime_r(const time_t *timep);struct t.原创 2020-09-25 20:00:43 · 1564 阅读 · 0 评论 -
Linux中C语言代码的运行机制
在Linux操作系统中进行C语言代码开发,必须对Linux系统有足够的了解,包括代码的运行机制、内存分配机制、系统调用和库函数等。1、C语言代码的运行机制 Linux中的程序是一个在磁盘上的可执行文件,内核调用一个exec函数将这个可执行文件调入到存储器中然后执行,这个程序的执行实例被称为进程,在Linux中每个进程都对应一个唯一的非负数字标识符,称为进程ID。 对于一个进程而言,其有8种方式可以返回使得其终止,对于这些方式的说明如下: ...原创 2020-09-21 21:08:37 · 238 阅读 · 0 评论 -
Centos中安装VIM编译器
在安装完Centos后(包括虚拟机中),它默认的是安装了VI编辑器,VIM是没有安装的,所以我们在使用vim 时会提示:vim command not found这就是说明我们的Linux环境没有安装vim编辑器,下面我们来说一下如何安装这个编辑器:vim编辑器需要安装三个包:vim-enhanced-7.x.xxx-7.exx.x86_64vim-minimal-7.x.xxx-7.exx.x86_64vim-common-7.x.xxx-7.exx.x86_641. 查.原创 2020-09-20 21:39:17 · 577 阅读 · 0 评论 -
C/C++中结构体动态内存的管理(malloc和free)
这两天在用C++写仿真代码时,用到了大量的结构体,但是最后的结果总是出错或者编译运行时就会出现错误。经过在网上查阅大量资料和博客,发现是因为使用结构体时没有考虑内存的分配。而在定义结构体这种数据类型的时候是不会分配内存空间的,只有在定义变量的时候,才会分配。经过查阅资料,我认为下面的博主讲解的很详细,所以写下这篇文章用来提醒自己,方便自己以后查阅资料!C语言中内存的管理主要是依据malloc和free实现的,其中malloc主要是实现内存的分配,而free则是实现内存的释放。虽然这是我们已经很熟悉的,但转载 2020-07-17 20:48:34 · 3738 阅读 · 1 评论 -
Linux 防火请命令
Linux中关于防火墙的命令(下面是Centos7中的测试)可以使用 yum install firewalld firewalld-config 安装防火请1:查看防火状态systemctl status firewalld.service2:关闭防火墙systemctl stop firewalld.service3. 禁用防火墙systemctl disable firewalld.service4. 重启防火墙systemctl restart fire.原创 2020-06-19 15:15:22 · 390 阅读 · 0 评论