Beefy Boxes and Bandwidth Generously Provided by pair Networks
more useful options
 
PerlMonks  

Re^20: Using STDIN after exec() with ActiveState Perl

by Yaribz (Acolyte)
on Jun 23, 2015 at 09:31 UTC ( #1131592=note: print w/replies, xml ) Need Help??


in reply to Re^19: Using STDIN after exec() with ActiveState Perl
in thread Using STDIN after exec() with ActiveState Perl

"plain xs" works for gettin %ENV changes reflected ; I never cared much for swig
Are you sure it's really related to xs vs swig and not Linux vs Windows? Did you test your code under Windows?
Windows manages two sets of environment definitions as soon as the CRT is started which leads to consistency problems such as the one I encountered, but it's not specific to perl (cf http://www.codeproject.com/Articles/43029/When-what-you-set-is-not-what-you-get-SetEnvironme)

For the record, here is the workaround I came up with for now:
if($^O eq 'MSWin32') { require Win32::API; Win32::API->Import('msvcrt', 'int __cdecl _putenv (char* envstring)' +); } sub exportEnvVar { my $envVar=shift; my $envVarDef="$envVar=".($ENV{$envVar}//''); die "Unable to export environment variable definition \"$envVarDef\" +" unless(_putenv($envVarDef) == 0); }
Then, when my script runs under Windows, I call exportEnvVar for each environment variable I update which needs to be seen by the dynamic library. This adds yet another platform-specific code to my script but I guess it's unavoidable... On Linux I don't need to do all that but on the other hand I need to restart (exec self) when I update LD_LIBRARY_PATH to select the dynamic library.

Replies are listed 'Best First'.
Re^21: Using STDIN after exec() with ActiveState Perl
by Anonymous Monk on Jun 23, 2015 at 11:09 UTC
    Yes i tested on win32
      On my system with ActiveState perl your script crashes at startup (compilation runs fine, it crashes just after).

        On my system with ActiveState perl your script crashes at startup (compilation runs fine, it crashes just after).

        You don't say :p

Log In?
Username:
Password:

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

How do I use this? | Other CB clients
Other Users?
Others perusing the Monastery: (5)
As of 2022-05-17 09:56 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?
    Do you prefer to work remotely?



    Results (65 votes). Check out past polls.

    Notices?