Your Ad Here
首页 | 编程语言 | 网站建设 | 游戏天堂 | 冲浪宝典 | 网络安全 | 操作系统 | 软件时空 | 硬件指南 | 病毒相关 | IT 认证
软讯网络 > 操作系统 > Linux > linux程序最大的参数个数
【标  题】:linux程序最大的参数个数
【关键字】:linux
【来  源】:http://blog.csdn.net/luhongboboy/archive/2007/01/12/1480918.aspx

linux程序最大的参数个数

Your Ad Here linux里面的程序,或者很多命令,都可以有很多的参数,比如ll,好像可以有无数个参数,但是,实际上是有限制的,当一个文件夹里面的文件个数太多,像
cp dir/* /dir2/ 这样的命令就不能执行了,错误处在cp参数太多。这个限制是在什么地方呢?
看linux内核源代码时,终于解决了这个疑惑。

原来,linux里面在执行execve系统调用的时候,用到这么一个结构,
struct linux_binprm{
char buf[BINPRM_BUF_SIZE];
struct page *page[MAX_ARG_PAGES];
unsigned long p; /* current top of mem */
int sh_bang;
struct file * file;
int e_uid, e_gid;
kernel_cap_t cap_inheritable, cap_permitted, cap_effective;
int argc, envc;
char * filename; /* Name of binary */
unsigned long loader, exec;
};
这个结构用来描述一个要执行的程序的所有的信息。其中,这个要执行的程序的文件名、输入参数argv[]和envp[]就存储在struct page *page[MAX_ARG_PAGES];里面,其中,MAX_ARG_PAGES是32。而一般envp[]的不会很大。所以,argv[]里面所有的字符串的长度加起来不能超过32个页面。也就是32×2^12B

 
uClinux使用/dev/vc/0设备名来读取usb键盘的键值:【上一篇】
smp_processor_id():【下一篇】
【相关文章】
  • uClinux使用/dev/vc/0设备名来读取usb键盘的键值
  • Linux下播放rmvb的问题解决
  • 如何建立linux交叉编译器(来自网络的相关帖子)
  • 初试Ubuntu Linux
  • linux下一些软件的中文显示问题
  • linux下批量处理文件内容
  • linux tar 命令
  • Linux嵌入式系统与硬件平台的关系
  • Mobilinux 4.0为移动和无线设备提供最优化的Linux
  • [转]嵌入式设备上的 Linux 系统开发(1)
  • 【随机文章】
  • show cef interface命令
  • zip文件的解压代码
  • Java嵌入式开发之j2me(3)
  • 800eVPN防火墙
  • 今天遇到经典的vxvm:vxconfigd: ERROR错误
  • 父子进程之间发送信号
  • 老板的角度
  • MediaConnect9000高端视频会议系统
  • XBSA Error (BSAInit)
  • 在Delphi中用ADSI创建IIS的虚拟目录
  • 【相关评论】
    没有相关评论
    【发表评论】
    姓名:
    邮件:
    随机码*
    评论*
          
    |  首 页  |  版权声明  |  联系我们   |  网站地图  |
    CopyRight © 2004-2007 bbb软讯网络 All Rigths Reserved.