h2ph - convert .h
C header files to .ph Perl header files
h2ph [-d destination directory] [-r | -a] [-l] [headerfiles]
C header files specified to the corresponding Perl
header file format. It is most easily run while in /usr/include:
cd /usr/include; h2ph * sys/*
cd /usr/include; h2ph -r -l .
The output files are placed in the hierarchy rooted at Perl's architecture
dependent library directory. You can specify a different hierarchy with a -d switch.
If run with no arguments, filters standard input to standard output.
- -d destination_dir
Put the resulting .ph files beneath destination_dir, instead of beneath the default Perl library location (
Run recursively; if any of headerfiles are directories, then run h2ph
on all files in those directories (and their subdirectories, etc.). -r
and -a are mutually exclusive.
Run automagically; convert headerfiles, as well as any .h files which they include. This option will search for .h files in all directories which your
C compiler ordinarily uses. -a and -r are mutually exclusive.
Symbolic links will be replicated in the destination directory. If -l
is not specified, then links are skipped over.
Put ``hints'' in the .ph files which will help in locating problems with
h2ph. In those cases when you require a .ph file containing syntax errors, instead of the cryptic
[ some error condition ] at (eval mmm) line nnn
you will see the slightly more helpful
[ some error condition ] at filename.ph line nnn
However, the .ph files almost double in size when built using -h.
Include the code from the .h file as a comment in the .ph file. This is primarily used for debugging h2ph.
No environment variables are used.
The usual warnings if it can't read or write the files involved.
Doesn't construct the
%sizeof array for you.
It doesn't handle all
C constructs, but it does attempt to isolate
definitions inside evals so that you can get at the definitions that it can
It's only intended as a rough tool. You may need to dicker with the files
We are painfully aware that these documents may contain incorrect links and
misformatted HTML. Such bugs lie in the automatic translation process
that automatically created the hundreds and hundreds of separate documents that you find here. Please do
not report link or formatting bugs, because we cannot fix
per-document problems. The only bug reports that will help us are those
that supply working patches to the installhtml or pod2html
programs, or to the Pod::HTML module itself, for which I and the entire
Perl community will shower you with thanks and praises.
If rather than formatting bugs, you encounter substantive content errors in these documents, such as mistakes in
the explanations or code, please use the perlbug utility included
with the Perl distribution.
- --Tom Christiansen, Perl Documentation Compiler and Editor
Return to the Perl Documentation Index.
Return to the Perl Home Page.