在Perl中,第一个命令行参数$ARGV [0]是脚本的路径和名称之后的第一个命令行参数.
Perl脚本如何获取用于调用它的路径和名称?
谢谢!
解决方法“In C/C++++ (bash,too?) the first command-line argument,argv[0],is the binary filename”
顺便说一句,这是错误的. ISO标准不要求这样做.
来自C99:
If the value of argc is greater than zero,the string pointed to by argv[0] represents the program name; argv[0][0] shall be the null character if the program name is not available from the host environment.
并注意它表示“代表程序名称”,而不是“是二进制可执行文件的位置”.那是因为有一个早期的片段说明:
… the array members argv[0] through argv[argc-1] inclusive shall contain pointers to strings,which are given implementation-defined values by the host environment prior to program startup.”
对于你的argv [0],命令“sleep 60”是“pax的梦幻般的睡眠效用”而不是“/ bin / sleep”是完全合法的.
简而言之,环境不必提供程序的表示,即使它确实如此,它也不必是用于定位二进制的任何东西.
但是,由于厌倦了我的dia骂,Perl为此目的提供$0或$PROGRAM_name(以那种可怕的“英语”模式).有关详情,请参见perlvar.
总结以上是内存溢出为你收集整理的如何获取正在运行的Perl脚本的路径和名称(C中的argv [0])全部内容,希望文章能够帮你解决如何获取正在运行的Perl脚本的路径和名称(C中的argv [0])所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)