Improve company productivity with a Business Account.Sign Up

x
  • Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 3757
  • Last Modified:

Using Perl system function to execute .exe file, getting error 32768

Hi,
   I have a Perl script that runs in Microsoft IIS server as a CGI script, and does the following:

1) Reads stuff from the database,
2) Creates a plain text file to describe some data on the local disk (same folder)
3) and uses the "system" sub-routine to execute an external program that creates an image of the database data, like this:

my $error_code=system("<path to executable>  <parameters, including output image file name>");

However, the image does not show up on the resulting web page, and is never created on the disk -- the web page says Perl has an error of "32768". Also, what's interesting is that the plain text file DOES get created, but the image file doesn't, so it means Perl has no problems writing to disk, but cannot get the external executable to run and create the file...

Does anyone have idea idea what the error code 32768 means in Perl, and how to resolve this?
0
Envoy2064
Asked:
Envoy2064
  • 6
  • 3
  • 2
  • +2
4 Solutions
 
MorcalavinCommented:
my $error_code=system("<path to executable>  <parameters, including output image file name>");

Can you give more info on this line?  What is the executable path?  Are you escaping special characters \ $, etc
0
 
Envoy2064Author Commented:
It goes like this:

"d:/myfolder/myexe -Paramter1 d:/myfolder/outputfilename.png"
0
 
Envoy2064Author Commented:
the "/" instead of "\" should not create any problems...
0
Free Tool: SSL Checker

Scans your site and returns information about your SSL implementation and certificate. Helpful for debugging and validating your SSL configuration.

One of a set of tools we are providing to everyone as a way of saying thank you for being a part of the community.

 
MorcalavinCommented:
Does the user that runs IIS have permission to execute programs?
0
 
ozoCommented:
In a system call in DOS, "/" instead of "\\" can create problems
0
 
MorcalavinCommented:
This part probably works fine:
d:/myfolder/myexe

perl understands that / equals \ for this filesystem

This part probably bombs:
-Paramter1 d:/myfolder/outputfilename.png
myexe doesn't understand that / = \

Try
"d:/myfolder/myexe -Paramter1 d:\\myfolder\\outputfilename.png"
0
 
Envoy2064Author Commented:
ozo, Morcalvin...thanks -- i'll try it out tomorrow as the server is not available at the moment.

Yes, we configured the IIS to let it execute scripts and executables, and read/write both...do you have any advice on giving IIS the absolute minimum permission but also let the application write to disk?
0
 
TintinCommented:
It's not Perl that recognises forward or backslashes, it's the OS.  Windows recognises forward slashes just fine, it's the Windows command interpreter that doesn't like them.

As for the error code 32768, it's not Perl that would be generating that error, it will be the executable your are calling and/or IIS.
0
 
Envoy2064Author Commented:
hm, i tried the \\ code, and it still doesn't work...any ideas? :-(
0
 
Envoy2064Author Commented:
upped the point value to 450
0
 
FishMongerCommented:
Try this:

# my @cmd = ('d:/myfolder/myexe', '-Paramter1', 'd:/myfolder/outputfilename.png');
my @cmd = ('d:\myfolder\myexe', '-Paramter1', 'd:\myfolder\outputfilename.png');
 
system(@cmd) == 0 or die "system @args failed: $?"

Open in new window

0
 
FishMongerCommented:
system(@cmd) == 0 or die "system @args failed: $?"

should be
system(@cmd) == 0 or die "system @cmd failed: $?"

Also, I didn't test which path separator would be needed, so you may need to adjust that.
0
 
ozoCommented:
what happens when it doesn't work?
what is the normal way for  d:/myfolder/myexe to deal with errors?
and are you sure the Perl code is getting to the system call?
0
 
Envoy2064Author Commented:
solved it...apparently there are DLL missing when I tested in via cmd.exe...
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

Join & Write a Comment

Featured Post

Get your problem seen by more experts

Be seen. Boost your question’s priority for more expert views and faster solutions

  • 6
  • 3
  • 2
  • +2
Tackle projects and never again get stuck behind a technical roadblock.
Join Now