f****u 发帖数: 12 | 1 Perl里用system()
单独运行和作为CGI script有何区别?
CGI是怎么调用其script的? | s*****g 发帖数: 219 | 2 你应该看看CGI的书。
一句两句说不清楚,简单介绍如下。Web Server调
CGI程序 (比如说Perl吧,其实用C写也行)。
然后CGI程序从stdin或者query_string环境变量
读取输入,向stdout输出结果。(就是print啦。)
【在 f****u 的大作中提到】![](/moin_static193/solenoid/img/up.png) : Perl里用system() : 单独运行和作为CGI script有何区别? : CGI是怎么调用其script的?
| o*******e 发帖数: 31 | 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 的大作中提到】![](/moin_static193/solenoid/img/up.png) : 你应该看看CGI的书。 : 一句两句说不清楚,简单介绍如下。Web Server调 : CGI程序 (比如说Perl吧,其实用C写也行)。 : 然后CGI程序从stdin或者query_string环境变量 : 读取输入,向stdout输出结果。(就是print啦。)
| f****u 发帖数: 12 | 4 是这样的.
我一哥们在system执行他的一个C程序.
在单独运行时OK,可作为CGI program时确不运行.
他程序里包括一个绘图的LIB,就是那儿出的问题.
总觉得两者运行时的环境设置不一样.
【在 o*******e 的大作中提到】![](/moin_static193/solenoid/img/up.png) : 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 发帖数: 219 | 5 在CGI里面使用system(), 关键是环境变量, 权限
和异步的问题. 由于apache使用noname账号执行
CGI, 而你在terminal方式使用的是login账号,
权限, 环境变量不一致.
另外, 据我的记忆, system()是异步方式工作,
即执行system()函数后, 立即返回主程序,
不等待system()调用的命令执行完毕. 所以如果
你要利用 system()调用的结果进行下一步计算,
建议你使用后引号. ` `. 具体说到我的经验,
我一般用 popen 或者 fork 加 exec.
【在 f****u 的大作中提到】![](/moin_static193/solenoid/img/up.png) : 是这样的. : 我一哥们在system执行他的一个C程序. : 在单独运行时OK,可作为CGI program时确不运行. : 他程序里包括一个绘图的LIB,就是那儿出的问题. : 总觉得两者运行时的环境设置不一样.
| m*****e 发帖数: 4193 | 6
No. It waits for the shell to complete.
【在 s*****g 的大作中提到】![](/moin_static193/solenoid/img/up.png) : 在CGI里面使用system(), 关键是环境变量, 权限 : 和异步的问题. 由于apache使用noname账号执行 : CGI, 而你在terminal方式使用的是login账号, : 权限, 环境变量不一致. : 另外, 据我的记忆, system()是异步方式工作, : 即执行system()函数后, 立即返回主程序, : 不等待system()调用的命令执行完毕. 所以如果 : 你要利用 system()调用的结果进行下一步计算, : 建议你使用后引号. ` `. 具体说到我的经验, : 我一般用 popen 或者 fork 加 exec.
|
|