Chinaunix首页 | 论坛 | 博客
  • 博客访问: 588388
  • 博文数量: 201
  • 博客积分: 3076
  • 博客等级: 中校
  • 技术积分: 2333
  • 用 户 组: 普通用户
  • 注册时间: 2009-08-02 19:44
文章分类

全部博文(201)

文章存档

2010年(118)

2009年(83)

我的朋友

分类: LINUX

2009-09-07 16:34:02

execlp:
1)如果filename(即第一个参数)中包含了"/",则将其视为路径名,如果不包含,则在环境变量PATH中查看filename
2) 找到filename后便执行该文件,然后将第二个以后的参数当做该文件的argv[0]

execlp  ("ls",    "-al",  (char *)0);
filename    arg0      arg1
argv[0]  argv[1]
所以没有参数
不过这样子把argv[0] 的内容改掉了, 一般的main函数,argv[0]是可执行文件名,
所以按习惯应该是像  execlp("ls","ls","-al",(char *)0) 这样使用。



/*
* main.c
*/
#include
<stdio.h>

#include
<unistd.h>

int
main(
int argc, char *argv[])
{
int r;

r
= execlp("./hello",
"What's your name?",
"What did you say?",
"What is your name?",
"Oh, call me World.",
(
char *)0);
return 0;
}
/*
* hello.c
*/
#include
<stdio.h>

int
main(
int argc, char *argv[])
{
int i;

for (i = 0; i < argc; i++) {
printf(
"%s\n", argv[i]);
}

return 0;
}
/*
* The out put is as the following:
*================================
$ make main hello && ./main
cc -g main.c -o main
cc -g hello.c -o hello
What's your name?
What did you say?
What is your name?
Oh, call me World.
$
*================================
*/
阅读(707) | 评论(0) | 转发(0) |
0

上一篇:没有了

下一篇:ubuntu start!

给主人留下些什么吧!~~