Linux系统函数execve说明(02)---实现两个程序之间的调用
2015-09-21 09:49
543 查看
环境:Vmware Workstation;CentOS-6.4-x86_64
说明:
自定义两个程序,实现程序之间的调用。
要求:
1、定义两个源文件main.c和other.c,生成两个可执行文件main和other
2、在other中打印参数的信息
3、执行程序main调用other
步骤:
1、创建并编写makefile文件,实现编译生成两个可执行文件:
.SUFFIXES:.c .o
CC=gcc
SRCS1=main.c
OBJS1=$(SRCS1:.c=.o)
EXEC1=main
SRCS2=other.c
OBJS2=$(SRCS2:.c=.o)
EXEC2=other
start: $(OBJS1) $(OBJS2)
$(CC) -o $(EXEC1) $(OBJS1)
$(CC) -o $(EXEC2) $(OBJS2)
@echo "-----------------------------OK-----------------------"
.c.o:
$(CC) -Wall -o $@ -c $<
clean:
rm -rf $(EXEC1) $(OBJS1)
rm -rf $(EXEC2) $(OBJS2)2、创建并编写源文件other.c:
#include <stdio.h>
int main(int arg, char *args[])
{
if (arg < 2)
{
printf("no arguments.\n");
}
else
{
printf("arguments : %s\n", args[1]);
}
return 0;
}3、创建并编写源文件main.c:
#include <stdio.h>
#include <unistd.h>
int main(void)
{
// 定义字符数组,保存程序执行的参数
char *args[] = { "/home/negivup/mycode/other", "4234", NULL };
// 调用execve执行程序
execve("/home/negivup/mycode/other", args, NULL);
return 0;
}4、编译并执行程序:
[negivup@negivup mycode]$ make
gcc -Wall -o main.o -c main.c
gcc -o main main.o
gcc -o other other.o
-----------------------------OK-----------------------
[negivup@negivup mycode]$ ./main
arguments : 4234
可以从程序的执行结果中可以看出,通过自己定义的函数,实现了一个进程调用了另一个进程。
PS:根据传智播客视频学习整理得出。
说明:
自定义两个程序,实现程序之间的调用。
要求:
1、定义两个源文件main.c和other.c,生成两个可执行文件main和other
2、在other中打印参数的信息
3、执行程序main调用other
步骤:
1、创建并编写makefile文件,实现编译生成两个可执行文件:
.SUFFIXES:.c .o
CC=gcc
SRCS1=main.c
OBJS1=$(SRCS1:.c=.o)
EXEC1=main
SRCS2=other.c
OBJS2=$(SRCS2:.c=.o)
EXEC2=other
start: $(OBJS1) $(OBJS2)
$(CC) -o $(EXEC1) $(OBJS1)
$(CC) -o $(EXEC2) $(OBJS2)
@echo "-----------------------------OK-----------------------"
.c.o:
$(CC) -Wall -o $@ -c $<
clean:
rm -rf $(EXEC1) $(OBJS1)
rm -rf $(EXEC2) $(OBJS2)2、创建并编写源文件other.c:
#include <stdio.h>
int main(int arg, char *args[])
{
if (arg < 2)
{
printf("no arguments.\n");
}
else
{
printf("arguments : %s\n", args[1]);
}
return 0;
}3、创建并编写源文件main.c:
#include <stdio.h>
#include <unistd.h>
int main(void)
{
// 定义字符数组,保存程序执行的参数
char *args[] = { "/home/negivup/mycode/other", "4234", NULL };
// 调用execve执行程序
execve("/home/negivup/mycode/other", args, NULL);
return 0;
}4、编译并执行程序:
[negivup@negivup mycode]$ make
gcc -Wall -o main.o -c main.c
gcc -o main main.o
gcc -o other other.o
-----------------------------OK-----------------------
[negivup@negivup mycode]$ ./main
arguments : 4234
可以从程序的执行结果中可以看出,通过自己定义的函数,实现了一个进程调用了另一个进程。
PS:根据传智播客视频学习整理得出。
相关文章推荐
- Linux学习记录(11)LVM的基本概念和操作
- Linux下的一些I/O统计工具
- linux ssh 使用深度解析(key登录详解)
- svn: E200033: database is locked解决办法
- Linux 部署ASP.NET SQLite 应用 的坎坷之旅 附demo及源码
- Linux 删除文件夹命令
- Linux常用命令大全
- 手把手教你Linux服务器集群部署.net网站 - 让MVC网站运行起来
- Linux实现时钟中断的全过程
- Linux查看系统配置常用命令
- Linux目录解释
- Linux系统函数execve说明(01)---函数参数说明
- Linux与windows的对比
- 在win7系统的电脑上安装CentOS7双系统
- linux0.11下的中断机制分析
- 【Linux探索之旅】第三部分测验题
- 【Linux探索之旅】第三部分测验题
- 【Linux探索之旅】第三部分第五课:延时执行,唯慢不破
- 【Linux探索之旅】第三部分第五课:延时执行,唯慢不破
- Linux操作系统内核对RTC的编程详解 (5)