avatar
CGI之Perl Script一问# Unix - 噫吁兮,危乎高哉
f*u
1
Perl里用system()
单独运行和作为CGI script有何区别?
CGI是怎么调用其script的?
avatar
s*g
2
你应该看看CGI的书。
一句两句说不清楚,简单介绍如下。Web Server调
CGI程序 (比如说Perl吧,其实用C写也行)。
然后CGI程序从stdin或者query_string环境变量
读取输入,向stdout输出结果。(就是print啦。)

【在 f****u 的大作中提到】
: Perl里用system()
: 单独运行和作为CGI script有何区别?
: CGI是怎么调用其script的?

avatar
o*e
3
use system in perl is just like u excute
any unix command or shell script in unix
shell.
That means u can call any unix command or
useful script from the yr cgi perl

【在 s*****g 的大作中提到】
: 你应该看看CGI的书。
: 一句两句说不清楚,简单介绍如下。Web Server调
: CGI程序 (比如说Perl吧,其实用C写也行)。
: 然后CGI程序从stdin或者query_string环境变量
: 读取输入,向stdout输出结果。(就是print啦。)

avatar
f*u
4
是这样的.
我一哥们在system执行他的一个C程序.
在单独运行时OK,可作为CGI program时确不运行.
他程序里包括一个绘图的LIB,就是那儿出的问题.
总觉得两者运行时的环境设置不一样.

【在 o*******e 的大作中提到】
: use system in perl is just like u excute
: any unix command or shell script in unix
: shell.
: That means u can call any unix command or
: useful script from the yr cgi perl

avatar
s*g
5
在CGI里面使用system(), 关键是环境变量, 权限
和异步的问题. 由于apache使用noname账号执行
CGI, 而你在terminal方式使用的是login账号,
权限, 环境变量不一致.
另外, 据我的记忆, system()是异步方式工作,
即执行system()函数后, 立即返回主程序,
不等待system()调用的命令执行完毕. 所以如果
你要利用 system()调用的结果进行下一步计算,
建议你使用后引号. ` `. 具体说到我的经验,
我一般用 popen 或者 fork 加 exec.

【在 f****u 的大作中提到】
: 是这样的.
: 我一哥们在system执行他的一个C程序.
: 在单独运行时OK,可作为CGI program时确不运行.
: 他程序里包括一个绘图的LIB,就是那儿出的问题.
: 总觉得两者运行时的环境设置不一样.

avatar
m*e
6

No. It waits for the shell to complete.

【在 s*****g 的大作中提到】
: 在CGI里面使用system(), 关键是环境变量, 权限
: 和异步的问题. 由于apache使用noname账号执行
: CGI, 而你在terminal方式使用的是login账号,
: 权限, 环境变量不一致.
: 另外, 据我的记忆, system()是异步方式工作,
: 即执行system()函数后, 立即返回主程序,
: 不等待system()调用的命令执行完毕. 所以如果
: 你要利用 system()调用的结果进行下一步计算,
: 建议你使用后引号. ` `. 具体说到我的经验,
: 我一般用 popen 或者 fork 加 exec.

相关阅读
logo
联系我们隐私协议©2024 redian.news
Redian新闻
Redian.news刊载任何文章,不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。文章信息的合法性及真实性由其作者负责,与Redian.news及其运营公司无关。欢迎投稿,如发现稿件侵权,或作者不愿在本网发表文章,请版权拥有者通知本网处理。