Linux之进程
来源:互联网 发布:马鞍山网络大学地址 编辑:程序博客网 时间:2024/06/07 12:25
写在前面:小生纯业余选手,开此博仅仅是为了积累,纯当笔记来用。如有看官光临小生博客,请不要相信我的代码就是正确的。如果您发现了错误也恳请耽误您一点时间,请您在下面指出来,不胜感激!
如果发现一些笔记的说法完全是错误的请建议我删除!
问题:
什么是进程?
程序与进程的区别是什么?
如何创建一个进程?
在操作系统的发展历程中,为了满足多任务操作,提出了进程的模型,进程就是正在被执行的程序,正在被执行的意思通过是否占用资源(资源包括内存资源,CPU资源)来描述。
Linux中可以通过system来创建一个进程(创建的新进程执行返回后才能继续执行原来的进程,注意进程的返回值、函数的返回值 );
可以通过popen(创建一个进程,同时创建了一个父子进程之间的管道)
可以通过exec系列函数来替换进程代码(替换当前代码空间中的代码,本身不创建新的进程)
可以通过调用fork来创建子进程(创建的到心得进程,copy父进程的代码,子进程与父进程轮流执行)。
Linux中与进程相关的shell指令有ps,pstree,top,kill
<span style="font-size:18px;">#include<stdio.h>#include<unistd.h>#include<stdlib.h>#include<sys/wait.h>int main(){ /* int r = system("ls -l"); printf("%d\n",getpid()); printf("%d\n",WEXITSTATUS(r)); //system("clear"); */ /* char buf[1024]; //FILE *f = popen("ls -l","r"); FILE *f = popen("gcc test.cpp","r"); int fd = fileno(f); int r; printf("^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n"); while( (r = read(fd,buf,1024)) >0 ) { buf[r] = '\0'; printf("%s\n",buf); } printf("^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n"); close(fd); pclose(f); */ //int r = execlp("ls","ls","-l",NULL); int r = execl("systest","systest","-l",NULL); printf("main:%d\n",r); return 0;} </span>
0 0
- Linux之进程篇
- Linux系统分析之进程
- linux之守护进程
- Linux之进程通信
- Linux之进程篇
- linux之进程管理
- Linux之进程环境
- Linux之守护进程
- Linux之进程组
- Linux之僵尸进程
- linux之进程管理
- linux操作系统之进程
- Linux学习之进程
- Linux之进程
- Linux之进程管理
- Linux之进程控制
- linux 之进程信号
- Linux之进程调度
- Android webservice 交互
- [c语言]将两个整形升序数组合并为一个升序数组
- 匈牙利算法(写的好)
- 正则表达式小结
- 使用jquery.daterange.js双日历控件时,daterangepicker初始化默认日期
- Linux之进程
- ubuntu系统截图
- uptime,Top,Free,PS,Pstree,VMStat,SysStat
- flex4 父子页面数据交互实现(回调函数)
- C++ enum用法
- LDS文件格式分析
- hive小文件合并
- 50、实例 使用jQuery管理事件之绑定多个事件
- 海量数据处理之Bloom Filter详解