如何获取正在运行的Perl脚本的路径和名称(C中的argv [0])

如何获取正在运行的Perl脚本的路径和名称(C中的argv [0]),第1张

概述在C/C++中(bash,也是?)第一个命令行参数argv [0]是二进制文件名(以用户调用的绝对路径或相对路径为前缀). 在Perl中,第一个命令行参数$ARGV [0]是脚本的路径和名称之后的第一个命令行参数. Perl脚本如何获取用于调用它的路径和名称? 谢谢! “In C/C++++ (bash, too?) the first command-line argument, argv[0] 在C/C++中(bash,也是?)第一个命令行参数argv [0]是二进制文件名(以用户调用的绝对路径或相对路径为前缀).

在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])所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/langs/1222643.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-05
下一篇 2022-06-05

发表评论

登录后才能评论

评论列表(0条)

保存