学习linux多线程编程 相关概念
学习Linux多进程编程
一、进程的定义:程序执行和资源管理的最小单位。
二、进程控制:
(1)进程标识: 进程标识 子进程号 父进程号
头文件 #include<unistd.h> #include<unistd.h>
函数功能 取得当前进程的进程号 取得当前进程的父进程号
函数原型 Pid_t getpid(void) Pid_t getppid(void)
函数返回值 成功返回进程的进程标识符 成功返回父进程的进程标识符
注:Pid_t其实是一个typedef类型,相当于unsigned int.
例:
#include<stdio.h>
#include<unistd.h>
int main()
{
printf("系统分配的进程号是:%d\n",getpid());
printf("系统分配的父进程号是:%d\n",getppid());
return 0;
}
(2)进程的创建:
1)exec族函数:
头文件 #include<unistd.h>
原型
int execl(const chat *path,const char *args,...)
int execv(const char *path,char const *argv[])
int execle(const cahr *path,const char *arg,...,char *const envp[])
int execve(const char *path,char *const argv[],char *const envp[])
int execlp(const char *file,char *arg,...)
int execvp(const cahr *file,char *const argv[])
返回 返回-1表示出错
由于比较多,在此只举例execve函数:
#include<stdio.h>
#include<unistd>
int main()
{
char *args[]={"/usr/bin/vim",NULL};
printf("系统分配的进程号是:%d\n",getpid());
if(execve("/usr/bin/vim",args,NULL)<0)
perror("创建进程出错!");
return 0;
}
注:在用execve函数创建新进程的后,会以新的程序取代原来的进程,然后系统会从新的进程运行,但是新的进程的PID值会与原来进程的PID值相同.
2)system()函数
头文件 #include<stdlib.h>
功能 在进程中开始另一个进程
原型 int system(const char *string)
传入值 系统变量
返回值
成功则返回执行shell命令后的返回值,调用/bin/sh数百返回127,其他
失败返回-1,三叔string为空返回非零值
&nb
相关文档:
一:前言
最近在研究android的sensor driver,主要是E-compass,其中用到了Linux input子系统.在网上也看了很多这方面的资料,感觉还是这篇分析的比较细致透彻,因此转载一下以便自己学习,同时和大家分享!
(这篇博客主要是以键盘驱动为例的,不过讲解的是Linux Input Subsystem,可以仔细的研究一下!)
键盘驱动将检 ......
级别: 初级
范晓炬 (xiaoju_f@263.net), 联想(北京)有限公司软件设计中心嵌入式研发处开发工程师, 联想(北京)有限公司软件设计中心
2003 年 8 月 11 日
对于移植 linux 到其它开发板的人来说,编写 boot loader 是一个不可避免的过程。对于学习linux的人来讲,编写 bootloader 也是一个很有挑战性的工作。本文通过对 li ......
一、Windows环境下的Java环境配置
1、安装JDK
2、配置环境变量
Win2000以及WinXP中可以在“我的电脑”属性的“高级”选项中找到“环境变量”,然后可以根据如下提示进行新建或者修改——
<1>JAVA_HOME
设置为 JDK的安装目录
<2>PATH ......
0 引言
微处理器的产生为价格低廉、结构小巧的CPU和外设的连
接提供了稳定可靠的硬件架构,这样,限制嵌入式系统发展的瓶颈就突出表现在了软件方面。尽管从八十年代末开始,已经陆续出现了一些嵌入式操作系统(比较著
名的有Vxwork、pSOS、Neculeus和Windows
CE)。但这些专用操作系统都是商 ......
关于系统调用劫持
如果一个木马要隐藏起来,不被系统管理员发现。截获系统调用似乎是必须的。大部分情况下,通过修改系统调用表来实现系统调用的劫持。下面是一个典型的截获系统调用的模块:
模块一:
#include
#include
#include
#include
#include
#include
#include
#include
#include
MODULE_LICE ......