in reply to Re^5: Portable way to extract string from a binary
in thread Portable way to extract string from a binary

It's feasible, but it's a lot more work than this:
sub getLibVersion { my $dir = shift; my $lib = "$dir/lib"; opendir(DIR, $lib) || die "Can't opendir($lib): $!"; my @files = grep(/lib(syb)?ct\./, readdir(DIR)); closedir(DIR); my $file; foreach (@files) { $file = "$lib/$_"; last if -e $file; } open(IN, $file) || die "Can't open $file: $!"; binmode(IN); my $version; while(<IN>) { if(/Sybase Client-Library\/([^\/]+)\//) { $version = $1; last; } } close(IN); if(!$version) { print "Unknown Client Library version - assuming FreeTDS.\n"; } else { print "Sybase OpenClient $version found.\n"; } return $version; }

Replies are listed 'Best First'.
Re^7: Portable way to extract string from a binary
by jfroebe (Parson) on Jul 14, 2004 at 16:11 UTC

    true... I guess I'm just hesitant on relying on a particular string with in the library... Sybase would *never ever* change that ... *cough cough wheez* ;-)

    Jason

    No one has seen what you have seen, and until that happens, we're all going to think that you're nuts. - Jack O'Neil, Stargate SG-1