Beefy Boxes and Bandwidth Generously Provided by pair Networks
XP is just a number
 
PerlMonks  

Re: How to convert a script from C to Perl?

by Anonymous Monk
on Oct 26, 2010 at 14:33 UTC ( [id://867483]=note: print w/replies, xml ) Need Help??


in reply to How to convert a script from C to Perl?

Before going to the trouble of rewriting something that already works in another language, I would first try to make sure you absolutely can't execute binaries as CGI programs on your server (very unlikely).

Of course, you can't run the C source directly (as with Perl)... You'd have to compile it first. But looking at the given program, getting it to compile looks like much less trouble than rewriting it...

  • Comment on Re: How to convert a script from C to Perl?

Replies are listed 'Best First'.
Re^2: How to convert a script from C to Perl?
by Anonymous Monk on Oct 26, 2010 at 19:01 UTC
    Hmm... I don't know the first thing about binaries or compiling sources, but you make it sound like there may be cause for hope. I'll pursue this angle.

    (original poster)

      The general procedure would be to put the required files (plant_id.c, util.c, util.h) into some directory, and then run a C compiler:

      $ cc plant_id.c -o plant_id plant_id.c: In function ‘num2Pstring’: plant_id.c:839: warning: function returns address of local variable
      This should create a binary named plant_id, which you'd copy into the cgi-bin directory of the webserver, making sure the executable bit of the file is set (chmod +x plant_id).

      This of course assumes you have a C compiler installed, like gcc on Linux. Also, the machine you compile the program on should be binary compatible with the target machine (the webserver) - The fewest potential problems would arise if you could compile it on the server itself.

      The warning "function returns address of local variable" issued by the compiler (see above) refers to the issue Marshall mentioned, which should definitely be fixed...

        ...and since we were fixing things, replace the statement near the end of plant_id.c

        string = num2Pstring( counter + 1 );
        with
        sprintf(string, "P%d", counter + 1);
        and remove the num2Pstring routine.

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://867483]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others goofing around in the Monastery: (6)
As of 2024-04-19 06:15 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found