home *** CD-ROM | disk | FTP | other *** search
- #!/usr/local/bin/perl
-
- ($iam = $0) =~ s%.*/%%;
- $tmp = "$iam.$$";
- open (CODE,">$tmp.c") || die "$iam: cannot create $tmp.c: $!\n";
-
- $mask = q/printf ("$sizeof{'%s'} = %d;\n"/;
-
- # write C program
- select(CODE);
-
- print <<EO_C_PROGRAM;
- #include <sys/param.h>
- #include <sys/types.h>
- #include <sys/socket.h>
- #include <net/if_arp.h>
- #include <net/if.h>
- #include <net/route.h>
- #include <sys/ioctl.h>
-
- main() {
- EO_C_PROGRAM
-
- while ( <> ) {
- chop;
- printf "\t%s, \n\t\t\"%s\", sizeof(%s));\n", $mask, $_,$_;
- }
-
- print "\n}\n";
-
- close CODE;
-
- # compile C program
-
- select(STDOUT);
-
- system "cc $tmp.c -o $tmp";
- die "couldn't compile $tmp.c" if $?;
- system "./$tmp";
- die "couldn't run $tmp" if $?;
-
- unlink "$tmp.c", $tmp;
-