m4(1) 맨 페이지 - 윈디하나의 솔라나라

개요

섹션
맨페이지이름
검색(S)

m4(1)

Name
     m4 - macro processor

Synopsis
     /usr/bin/m4 [-e] [-s] [-B int] [-H int] [-S int]
          [-T int] [-Dname [=val]] ... [-U name] ... [file]...


     /usr/xpg4/bin/m4 [-e] [-s] [-B int] [-H int] [-S int]
          [-T int] [-Dname [...=val]] [-U name] ... [file]...

Description
     The m4 utility is a macro processor intended as a front  end
     for  C, assembler, and other languages. Each of the argument
     files is processed in order. If there are no files, or if  a
     file is -, the standard input is read. The processed text is
     written on the standard output. Note: m4 cannot include more
     than  nine  nested  files and writes a diagnostic message if
     that number is exceeded.

  Macro Syntax
     Macro calls have the form:

       name(arg1,arg2, ..., argn)




     The open parenthesis character, (, must  immediately  follow
     the name of the macro. If the name of a defined macro is not
     followed by a (, it is deemed to be a  call  of  that  macro
     with   no   arguments.  Potential  macro  names  consist  of
     alphanumeric characters and underscore (_), where the  first
     character is not a digit.


     Leading unquoted blanks,  TABs,  and  NEWLINEs  are  ignored
     while collecting arguments. Left and right single quotes are
     used to quote strings. The value of a quoted string  is  the
     string stripped of the quotes.

  Macro Processing
     When a macro name is recognized, its arguments are collected
     by  searching  for  a  matching  right parenthesis. If fewer
     arguments are supplied than are in the macro definition, the
     trailing  arguments  are  taken to be NULL. Macro evaluation
     proceeds normally during the collection  of  the  arguments,
     and  any  commas or right parentheses that happen to turn up
     within the value of a nested call are as effective as  those
     in  the  original input text. After argument collection, the
     value of the macro is pushed back onto the input stream  and
     rescanned.

Options
     The options and their effects are as follows:

     -Bint
              Changes the size of the push-back and argument col-
              lection  buffers  from the default of 4,096. Values
              of size less than or equal to zero are ignored  and
              the default value is used.


     -e
              Operates interactively. Interrupts are ignored  and
              the output is unbuffered.


     -Hint
              Changes the size of the  symbol  table  hash  array
              from  the  default  of 199. For better performance,
              the size should be prime. Values of size less  than
              or  equal to zero are ignored and the default value
              is used.


     -s
              Enables line sync output  for  the  C  preprocessor
              (#line ...)


     -Sint
              Changes the size of the call stack from the default
              of  100  slots.  Macros  take three slots, and non-
              macro arguments take one. Values of size less  than
              or  equal to zero are ignored and the default value
              is used.


     -Tint
              Changes the size  of  the  token  buffer  from  the
              default  of  512 bytes. Values of size less than or
              equal to zero are ignored and the default value  is
              used.



     To be effective, the above flags must appear before any file
     names and before any -D or -U flags:

     -D name[=val]
                      Defines name to val or  to  NULL  in  val's
                      absence.


     -Uname
                      Undefines name.

Operands

     The following operand is supported:

     file
             A path name of a text file to be  processed.  If  no
             file  is given, or if it is -, the standard input is
             read.

Usage
     The m4 utility makes available the following  built-in  mac-
     ros.  These  macros  can be redefined, but once this is done
     the original meaning is lost. Their values are  NULL  unless
     otherwise stated.

     changequote
                    Change quote symbols to the first and  second
                    arguments.  The  symbols  can  be  up to five
                    characters long.  changequote  without  argu-
                    ments  restores the original values (that is,
                    `').


     changecom
                    Change left and right  comment  markers  from
                    the default # and NEWLINE. With no arguments,
                    the comment  mechanism  is  effectively  dis-
                    abled.  With  one  argument,  the left marker
                    becomes the argument  and  the  right  marker
                    becomes  NEWLINE.  With  two  arguments, both
                    markers are affected. Comment markers can  be
                    up to five characters long.


     decr
                    Returns the value of its argument decremented
                    by 1.


     define
                    The second argument is installed as the value
                    of  the  macro  whose name is the first argu-
                    ment. Each occurrence of $n in  the  replace-
                    ment text, where n is a digit, is replaced by
                    the n-th argument. Argument 0 is the name  of
                    the  macro; missing arguments are replaced by
                    the null string; $# is replaced by the number
                    of arguments; $* is replaced by a list of all
                    the arguments separated by commas; $@ is like
                    $*,  but  each  argument  is quoted (with the
                    current quotes).


     defn
                    Returns  the   quoted   definition   of   its
                    argument(s).  It  is useful for renaming mac-
                    ros, especially built-ins.

     divert
                    m4 maintains 10 output streams, numbered 0-9.
                    The  final output is the concatenation of the
                    streams in numerical order. Initially  stream
                    0  is  the  current  stream. The divert macro
                    changes the  current  output  stream  to  its
                    (digit-string) argument. Output diverted to a
                    stream other than 0 through 9 is discarded.


     divnum
                    Returns  the  value  of  the  current  output
                    stream.


     dnl
                    Reads  and  discards  characters  up  to  and
                    including the next NEWLINE.


     dumpdef
                    Prints current names and definitions, for the
                    named  items,  or for all if no arguments are
                    given.


     errprint
                    Prints its argument on the diagnostic  output
                    file.


     ifdef
                    If the first argument is defined,  the  value
                    is  the second argument, otherwise the third.
                    If there is no third argument, the  value  is
                    NULL. The word unix is predefined.


     ifelse
                    This macro has three or  more  arguments.  If
                    the  first argument is the same string as the
                    second, then the value is the third argument.
                    If not, and if there are more than four argu-
                    ments, the process is repeated with arguments
                    4, 5, 6 and 7. Otherwise, the value is either
                    the fourth string, or, if it is not  present,
                    NULL.


     include
                    Returns the contents of the file named in the
                    argument.


     incr
                    Returns the value of its argument incremented
                    by 1. The value of the argument is calculated
                    by interpreting an initial digit-string as  a
                    decimal number.

     index
                    Returns the position in  its  first  argument
                    where  the  second argument begins (zero ori-
                    gin), or -1 if the second argument  does  not
                    occur.


     len
                    Returns the number of characters in its argu-
                    ment.


     m4exit
                    This macro causes  immediate  exit  from  m4.
                    Argument  1,  if given, is the exit code; the
                    default is 0.


     m4wrap
                    Argument 1 is pushed back at final EOF. Exam-
                    ple: m4wrap(`cleanup()')


     maketemp
                    Fills in a string of "X"  characters  in  its
                    argument with the current process ID.


     popdef
                    Removes    current    definition    of    its
                    argument(s),  exposing  the  previous one, if
                    any.


     pushdef
                    Like define, but saves any  previous  defini-
                    tion.


     shift
                    Returns all but its first argument. The other
                    arguments  are  quoted  and  pushed back with
                    commas in between. The quoting nullifies  the
                    effect of the extra scan that is subsequently
                    be performed.


     sinclude
                    This macro is identical  to  include,  except
                    that  it says nothing if the file is inacces-
                    sible.


     substr
                    Returns a substring of  its  first  argument.
                    The  second  argument is a zero origin number
                    selecting  the  first  character;  the  third
                    argument  indicates  the  length  of the sub-
                    string. A missing third argument is taken  to
                    be  large  enough to extend to the end of the
                    first string.

     syscmd
                    This macro executes the command given in  the
                    first argument. No value is returned.


     sysval
                    This macro is the return code from  the  last
                    call to syscmd.


     translit
                    Transliterates the characters  in  its  first
                    argument  from  the  set  given by the second
                    argument to the set given by  the  third.  No
                    abbreviations are permitted.


     traceon
                    This macro with no arguments, turns on  trac-
                    ing  for  all  macros  (including built-ins).
                    Otherwise, turns on tracing for named macros.


     traceoff
                    Turns off trace globally and for  any  macros
                    specified.


     undefine
                    Removes the definition of the macro named  in
                    its argument.


     undivert
                    This macro causes immediate  output  of  text
                    from  diversions  named  as arguments, or all
                    diversions  if  no  argument.  Text  can   be
                    undiverted  into another diversion. Undivert-
                    ing discards the diverted text.


  /usr/bin/m4
     eval
             Evaluates its argument as an arithmetic  expression,
             using  32-bit signed-integer arithmetic. The follow-
             ing operators are supported: parentheses,  unary  -,
             unary  +,  !, ~, *, /, %, +, -, relationals, bitwise
             &, |, &&, and ||.  Octal  and  hex  numbers  can  be
             specified as in C. The second argument specifies the
             radix for the result; the default is 10.  The  third
             argument  can  be used to specify the minimum number
             of digits in the result.


  /usr/xpg4/bin/m4
     eval
             Evaluates its argument as an arithmetic  expression,
             using  32-bit signed-integer arithmetic. The follow-
             ing operators are supported: parentheses,  unary  -,
             unary  +,  !, ~, *, /, %, +, -, <<, >>, relationals,
             bitwise  &,  |,   &&,   and   ||.   Precedence   and
             associativity are as in C. Octal and hex numbers can
             also be specified  as  in  C.  The  second  argument
             specifies  the  radix for the result; the default is
             10. The third argument can be used  to  specify  the
             minimum number of digits in the result.

Examples
     Example 1 Examples of m4 files


     If the file m4src contains the lines:


       The value of `VER' is "VER".
               ifdef(`VER', ``VER'' is defined to be VER., VER is not defined.)
               ifelse(VER, 1, ``VER'' is `VER'.)
               ifelse(VER, 2, ``VER'' is `VER'., ``VER'' is not 2.)
               end




     then the command:


       m4 m4src




     or the command:


       m4 -U VER m4src




     produces the output:


       The value of VER is "VER".
               VER is not defined.

               VER is not 2.
               end

     The command:


       m4 -D VER m4src




     produces the output:


       The value of VER is "".
               VER is defined to be .

               VER is not 2.
               end




     The command:


       m4 -D VER=1 m4src




     produces the output:


       The value of VER is "1".
              VER is defined to be 1.
              VER is 1.
              VER is not 2.
              end




     The command:


       m4 -D VER=2 m4src




     produces the output:


       The value of VER is "2".

               VER is defined to be 2.

               VER is 2.
               end

Environment Variables
     See environ(5) for descriptions of the following environment
     variables  that  affect  the  execution of m4: LANG, LC_ALL,
     LC_CTYPE, LC_MESSAGES, and NLSPATH.

Exit Status
     The following exit values are returned:

     0
           Successful completion.


     >0
           An error occurred



     If the m4exit macro is used, the exit value can be specified
     by the input file.

Attributes
     See attributes(5) for descriptions of the  following  attri-
     butes:

  /usr/bin/m4
     tab() box; cw(2.75i) |cw(2.75i) lw(2.75i) |lw(2.75i)  ATTRI-
     BUTE TYPEATTRIBUTE VALUE _ Availabilitysystem/core-os


  /usr/xpg4/bin/m4
     tab() box; cw(2.75i) |cw(2.75i) lw(2.75i) |lw(2.75i)  ATTRI-
     BUTE  TYPEATTRIBUTE  VALUE _ Availabilitysystem/xopen/xcu4 _
     Interface StabilityCommitted _ StandardSee standards(5).

See Also
     as(1), attributes(5), environ(5), standards(5)
맨 페이지 내용의 저작권은 맨 페이지 작성자에게 있습니다.
RSS ATOM XHTML 5 CSS3