免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 5219 | 回复: 17
打印 上一主题 下一主题

[函数] main函数参数请教 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2003-05-28 11:52 |只看该作者 |倒序浏览
main(int argc,char *argv[],char **environ)
函数中,传给main的参数的个数有没有限制?
若有,是多少?
若无,那argv的地址如何分配用来装参数?
比如,我们自己写的程序里
my_fun(int n,char *v[])
{
   .......
   v=(char *)malloc(size);/*需要先分配空间才能写,可是main中不需要*/
   ......
}

论坛徽章:
1
荣誉版主
日期:2011-11-23 16:44:17
2 [报告]
发表于 2003-05-28 12:58 |只看该作者

main函数参数请教

标准C规定是两个参数,但是大多数的unix系统提供了三个参数,第三个参数用来向调用main函数的例程(一般的是一个shell例程exec)传递环境变量表。

在程序设计中,如果没有指定第三个参数,可以用getenv等函数存取或修改部分环境表中的变量。

一般的在系统头文件中已经将环境表神明为如下,因此在程序中使用不会提示没有引用的错误信息。
extern char **_environ;

论坛徽章:
0
3 [报告]
发表于 2003-05-28 13:02 |只看该作者

main函数参数请教

原帖由 "蓝色键盘" 发表:
标准C规定是两个参数,但是大多数的unix系统提供了三个参数,第三个参数用来向调用main函数的例程(一般的是一个shell例程exec)传递环境变量表。

在程序设计中,如果没有指定第三个参数,可以用getenv等函数存取..........


谢谢斑竹关于第三个参数的说明。
我问的还有就是argv分配空间的问题。

论坛徽章:
1
荣誉版主
日期:2011-11-23 16:44:17
4 [报告]
发表于 2003-05-28 13:08 |只看该作者

main函数参数请教

我觉得这个空间估计在连接编辑程序中处理的,具体怎么处理,我不清楚。

以上也是个人观点,如果哪位知道确切的过程,感激不尽!

论坛徽章:
0
5 [报告]
发表于 2003-05-28 13:24 |只看该作者

main函数参数请教

启动代码做的。main只是它调用的函数。

论坛徽章:
0
6 [报告]
发表于 2003-05-28 13:28 |只看该作者

main函数参数请教

[quote]原帖由 "fieryfox"]启动代码做的。main只是它调用的函数。[/quote 发表:
   

启动代码如何做的话,也应该分配空间啊?

论坛徽章:
1
荣誉版主
日期:2011-11-23 16:44:17
7 [报告]
发表于 2003-05-28 13:37 |只看该作者

main函数参数请教

启动代码如何做的话,也应该分配空间啊?

应该是吧,这个东西我觉得没必要深究。

论坛徽章:
0
8 [报告]
发表于 2003-05-28 13:56 |只看该作者

main函数参数请教

空间当然是要分配的,是启动代码分配的。可以参考crt1.asm。每个编译器都有自己的crt代码。

论坛徽章:
0
9 [报告]
发表于 2003-05-28 17:36 |只看该作者

main函数参数请教

是啊,我也觉得没有必要深究这个问题的,其实C语言程序运行并不是从MAIN函数开始的.

论坛徽章:
0
10 [报告]
发表于 2003-05-28 17:53 |只看该作者

main函数参数请教

可是我觉得了解的话,对c的理解或者对编程的理解能从另外的角度了解,所以我觉得我还是要想办法解决这个问题:)
另外,请斑竹在帮忙看如下的程序有无问题?
#include <unistd.h>;
int main()
{
    char *name[2];
    name[0]="/usr/bin/ksh";
    name[1]=NULL;
    execve(name[0],name,NULL);
    return 0;
}
这个程序中,name[0]不需要先用malloc分配空间么?
还有name[0]能给直接从一个字符串赋值,而不需要用strcpy()函数么?谢谢指教!
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP