![](https://img-blog.csdnimg.cn/20210329174627658.jpg?x-oss-process=image/resize,m_fixed,h_224,w_224)
嵌入式学习第二阶段Linux开发文件和进程
Linux开发实战
木下 似水
苏州大学大三软件工程在读。
展开
-
Linux下system和popen函数
system函数参考这篇博文的概念:链接: https://blog.csdn.net/sk983671939/article/details/79726854.可以看到,system比execl更简单粗暴,它直接让系统本身去执行你想要执行的命令,来看看它的源码:int system(const char * cmdstring){pid_t pid;int status;if(cmdstring == NULL){return (1); //如果cmdstring为空,返回非零值,一般原创 2021-04-01 21:30:43 · 196 阅读 · 0 评论 -
Linux下exec族函数
EXEC族函数的一些函数使用原文链接: https://blog.csdn.net/u014530704/article/details/73848573.这篇文章讲解的exec相关函数讲解的很好,如果在实际使用过程中的话,具体细节可以来看这篇文章,膜拜大佬(我就做做示例讲解,讲讲怎么使用了。)exec族函数函数的作用:我们用fork函数创建新进程后,经常会在新进程中调用exec函数去执行另外一个程序。当进程调用exec函数时,该进程被完全替换为新程序。因为调用exec函数并不创建新进程,所以前后进原创 2021-04-01 17:22:27 · 145 阅读 · 2 评论 -
Linux进程收集和孤儿进程
父进程收集子进程的状态首先,我们来思考一下为什么要创建进程呢,很大的原因是我们希望通过子进程来来帮我们干活,比如在fork之后,我们创建了一个子进程,它会执行一段我们想让它执行的代码,而不会影响父进程(当然这里忽略结束信息忽略被父进程收集的“影响”等了)简单来说,就是让子进程来帮我们干活。介绍一个概念,僵尸进程:如果子进程先于父进程退出, 同时父进程又没有调用wait/waitpid,则该子进程将成为僵尸进程。通过ps命令,我们可以看到该进程的状态为Z(表示僵死)。总之,当子进程结束后,要返回一个原创 2021-03-31 22:03:08 · 103 阅读 · 0 评论 -
Linux下进程退出
进程退出方式细节的同学注意到上一节子进程中ret 到了3之后我想让程序退出,我没有用break,而是用的exit(0),这就要谈进程的退出问题了。一个进程要想退出有哪些方式呢?首先来看正常退出正常退出1.main函数调用return 退出程序了自然退出了对吧2.调用exit(),该函数在C的标准库中3.调用_exit(),或者_Exit(),这属于系统调用。补充,1.最后一个线程返回(线程在后面章节讲解)2.最后一个进程调用pthreadt_exit异常退出1.调用abort2.进程原创 2021-03-31 20:33:57 · 142 阅读 · 0 评论 -
Linux进程创建之vfork
vfork函数和fork函数的区别我们已经讲过了fork函数创建进程,那vfork有什么意义呢?vfork函数的不同在于:1.它直接使用父进程的存储空间,和fork函数复制拷贝父进程的存储空间不同。2它保证子进程先运行,调用exit后父进程才执行。我们来编程看看区别。可以看出,父进程和子进程谁先运行是不一定的。那换vfork呢?看到,vfork保证子进程先运行。(师上官可编程)...原创 2021-03-31 17:00:19 · 128 阅读 · 0 评论 -
Linux创建进程
fork函数初用了解了进程的相关概念后,我们来最简单的试用以下进程。查看手册,fork函数可以看到,调用fork后,会立刻创建一个子进程,我们简单看看效果,打印一下自己的进程号。可以看到父进程和子进程的标识符。(师上官可编程)...原创 2021-03-31 11:14:18 · 113 阅读 · 0 评论 -
Linux进程相关概念
1.什么是程序,什么是进程程序是静态的概念,如gcc xxx.c -o xxxx在磁盘中生成的文件。进程是程序的一次运行活动,一个程序跑起来了,可以说系统中多了一个进程。2.如何查看系统中有哪些进程?使用ps指令来查看,实际工作中,配合grep查看是否存在某一个进程。Ubuntu下面ps -aux。top指令,类似Windows的任务管理器。3.什么是进程标识符?每个进程都有一个非负整数的标识符pid,类似于进程的“身份证”。pid=0 交换进程(调度进程)pid=1 inti进程原创 2021-03-31 10:41:16 · 88 阅读 · 2 评论 -
Linux下向文件写入一个整数,写入一个结构体
文件操作之写入整数和结构体我们上一节修改了配置文件的内容,包括之前我们都是向文件写入一句话,或者读一句话,好像都是字符串的形式,那么文件是只能进行字符形式信息的输入输出吗?不是的,我们来仔细看一下write函数的原型。!我们可以看到write函数的第二个参数是一个无类型的指针类型,也就是说我们可以传很多种类型给它,只要它是一个指针类型,指针也就是地址嘛,那我们试一试把一个整数地址给它,看会发生什么。我们来编程:实战编程运行结果查看file3,可以看到这样的结果,那么说我们错了吗,不是的,原创 2021-03-31 09:59:22 · 749 阅读 · 0 评论 -
Linux下修改配置文件内容
文件操作之修改配置文件内容在一些系统或者游戏运行时经常遇到一些情况需要修改一下配置文件的内容,比如游戏中任务升级了,需要修改人物等级,那么这是怎么完成的呢?好,我还是老规矩先来介绍一个函数,strstr一样的查看手册可以看到,该函数有两个参数,第一个参数要查询的字符串,第二个参数是目标子字符串,返回值是一个指针,指向子字符串的开头,如果没有那么返回NULL,什么意思呢,举个例子,比如CHINAENGLISH字符串,我要查找ENGLISH,使用strstr后,返回一个字符指针,指到E位置。好,介绍完原创 2021-03-30 21:32:27 · 1163 阅读 · 0 评论 -
Linux自己实现cp命令
自己实现cp命令(面试可能遇到手写cp命令)我们平时在Linux环境下复制一个文件,一般都直接用:cp 文件a 文件b这样的格式,那么我们能不能自己写一个cp命令呢?C语言main函数的参数使用c语言入门阶段,我们的主函数,一般都直接用main()不加参数,但实际开发过程中是要用到main函数本来的样子的。main函数里的形参是固定的格式,就是main(int argc,char** argv)两个形参,argc用来记录程序启动时就传入的参数个数,argv[]用来记录每个实参的地址。可能有点难原创 2021-03-30 18:36:33 · 962 阅读 · 0 评论 -
Linux光标操作(lseek的使用)
上一节我们说,如果我们在刚刚写入文件内容后不关闭文件重新打开的话,将读取不到任何的东西,因为文件的光标移到了文件的最后,那么我们有没有什么稍微好一点的办法来实现光标的移动呢,这就是lseek函数发挥作用的时候了。老规矩,都知道了吧,我们先查看手册中lseek函数的相关信息。可以看出,第一个参数是文件描述符,第二个参数是偏移值,第三个参数是位置,而第三个参数有三个宏,SEEK_SET:开头SEEK_CUR:现在的位置SEKK_END:末尾简单的:把光标移到开头,(fd,0,SEEK_SET)移到原创 2021-03-29 21:17:30 · 485 阅读 · 0 评论 -
Linux下文件的读取操作
在对文件写入了内容后,我们如何来对文件进行读取内容操作呢。老规矩,来看看Linux手册中的write函数和read函数,注意来看看他们的返回值。write函数的返回值可以看出返回写入的字节长度read函数的返回值类似的是读取的字节长度。像是上篇文章我们写入了"gao ying jie hen shuai"之后,我们如何来读取文件file1呢,开始实战编程。1.首先打开该文件,2.写入buf,内容为"gao ying jie hen shuai"3.关闭文件(这一步非常非常的重要,不加上这一步,原创 2021-03-29 20:16:41 · 2434 阅读 · 0 评论 -
Linux下文件的写入操作
write 函数和close函数的使用首先,我们还是来看Linux手册上的write函数,close函数对于文件的操作最后一定要记住关闭文件,养成这样的习惯对于以后很有好处。首先要准备一个文件,对吧,我们要往里面写点东西,就先决定为写“gao ying jie hen shuai”,(别问,问就是事实)思路是什么呢,很容易,那就是打开文件,写入东西,关闭文件呗,对吧,开始编程。简单的,定义一个字符串,指向它的指针作为write的第二个参数,strlen计算这个字符的长度,并且把write函数返原创 2021-03-29 19:26:19 · 3562 阅读 · 3 评论 -
Linux下文件的创建和打开
文件的创建首先,Linux下我们创建文件可以用Touch命令,删除操作可以用rm命令,那么如果用程序来进行操作呢,Linux操作系统给我们提供了一系列的api。首先,要知道文件描述符的概念,参考这篇博文的概念:这里是引用https://blog.csdn.net/qq_33417547/article/details/72850982?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522161701005616780266292865%2原创 2021-03-29 17:45:54 · 505 阅读 · 2 评论