C++码农日记笔记

时间:2024-03-19 20:55:42

环境搭建

Linux下的Qt Creator环境搭建

https://blog.csdn.net/Chuangke_Andy/article/details/122928669

文本文件在Windows系统与Linux系统中的换行符不同,在Windows中为CR+LF(回车+换行),而在Linux中为LF(换行)。Xftp在传输文本文件时将自动根据目标系统转换文件的换行符

第09天 在Linux系统中以守护进程方式运行程序

如何让一个进程变成守护进程让一个进程变成守护进程,分为如下步骤。

1)创建子进程,终止父进程由于守护进程是脱离控制终端的,因此要先创建子进程,然后终止父进程,造成进程已经运行完毕的假象。在这之后,所有的工作都在子进程中完成,而用户在终端里可以执行其他命令,这样可以先在形式上做到与控制终端的脱离。让一个进程以后台方式运行,可以通过fork()函数实现。fork()函数通过系统调用创建一个与原来进程几乎完全相同的进程。一个进程调用fork()函数后,系统先给新的进程分配资源(如存储数据和代码的空间),然后把原来进程的所有值都复制到新进程中,只有少数值与原进程的值不同,这相当于克隆了一个进程。新旧两个进程可以做完全相同的事,也可以做不同的事,这可以由初始参数决定。

先看一下fork()函数的一个简单例子,见代码清单2-14。
代码清单2-14:
在这里插入图片描述
如代码清单2-14所示,在标号①处,在代码processId=fork()执行之前,只有一个进程在执行这之前的代码,但在这条语句之后,就变成两个进程在执行了。在fork()函数执行完毕后,如果创建新进程成功,则出现两个进程,一个是父进程,另一个是子进程。这两个进程将要执行的下一条语句都是标号②处的if(0 ==processId)。fork()函数只会把下一个要执行的代码以及之后的代码复制到新进程。fork()函数可能有以下三种不同的返回值。

在父进程中,调用fork()函数成功,并且新创建子进程的进程ID>0。此时输出的信息见标号③处。在子进程中,fork()函数返回0。此时输出的信息见标号④处。如果出现错误,则fork()函数返回一个负值。此时可以通过errno的值判断错误原因。因此,可以通过fork()函数返回的值来判断当前进程是子进程还是父进程。通过调用fork()函数可以让新创建的子进程继续执行父进程尚未执行的代码,那么父进程就可以退出运行了。但此时的子进程仍未脱离终端,如果需要进程以后台服务方式运行,那么就需要让进程脱离终端以守护进程方式运行。

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述