大佬教程收集整理的这篇文章主要介绍了C如何将命令行参数转换为数组?,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
对于POSIX系统,执行路径是:
>在程序中调用execle / execve / …系统调用,将路径传递给新的进程可执行文件和命令行参数.
>这些数据转到内核
>内核更新其内部结构以考虑新的进程标识,并为新进程分配地址空间(如果不再需要,内核也会清除旧的地址空间).内核用零初始化进程内存,将信息从旧内存复制到堆栈顶部的新地址空间.
>内核将新进程放入调度队列并从exec()系统调用返回,将执行路径传递到用户空间并最终传递到进程的入口点(这通常是来自crt0.o对象文件的例程,这是默认情况下链接到每个可执行文件 – 此例程调用main()).
对于Linux,您可以在此处查看此代码:
http://www.cs.fsu.edu/~baker/devices/lxr/http/source/linux/fs/exec.c#L383:
383 /* 384 * 'copy_strings()' copies argument/environment strings from the old 385 * processes's memory to the new process's stack. The call to get_user_pages() 386 * ensures the destination page is created and not swapped out. 387 */
在用户空间execve()系统调用的do_execve()内核对应部分,在第1345行,调用copy_strings(),copy_strings()例程实际上完成了你所询问的工作.
以上是大佬教程为你收集整理的C如何将命令行参数转换为数组?全部内容,希望文章能够帮你解决C如何将命令行参数转换为数组?所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。