{
    "mode": "man",
    "parameter": "mawk-code",
    "section": "7",
    "url": "https://www.chedong.com/phpMan.php/man/mawk-code/7/json",
    "generated": "2026-10-05T20:51:41Z",
    "synopsis": "At  startup, mawk compiles the script into byte-code.  After that, it interprets the compiled\nbyte-code.  Use the -Wdump option to show the byte-code.",
    "sections": {
        "NAME": {
            "content": "mawk-code - dumping mawk's byte-code\n",
            "subsections": []
        },
        "SYNOPSIS": {
            "content": "At  startup, mawk compiles the script into byte-code.  After that, it interprets the compiled\nbyte-code.  Use the -Wdump option to show the byte-code.\n",
            "subsections": []
        },
        "PROGRAM CODES": {
            "content": "As mawk executes the program, it maintains a reference to the command to execute in cdp.  Af‐\nter that there may be data and/or references in cdp[0], cdp[1], etc.\n\nWhen an operation requires operands, mawk pushes the values (or array/string references) onto\nthe stack, which updates the stack pointer sp.  When the operation completes,  mawk  consumes\nthose entries on the stack, pushing the result (if any) onto the stack.\n\nWhile  executing  user-defined  functions,  mawk  maintains a frame pointer fp to address the\nfunction's local variables.\n",
            "subsections": [
                {
                    "name": "a_cat",
                    "content": "Concatenate array-indices.\n\nUsage:\nForms a multiple array index by concatenating the elements of  sp[1-cnt..0],  with  each\nelement separated by SUBSEP.\n\nParameters:\n\ncdp[0]\ncnt, the number of elements to concatenate follows the command.\n\nsp[0]..sp[1-cnt]\nhold reference to the elements to concatenate.\nReturns the index in sp[0].\n"
                },
                {
                    "name": "a_del",
                    "content": "Delete an array item.\n\nUsage:\ndelete array[expr]\n\nParameters:\n\nsp[0]\npoints to array\n\nsp[-1]\nis an expr\n"
                },
                {
                    "name": "a_length",
                    "content": "Find the length of an array.\n\nUsage:\nlength(array)\n\nParameters:\n\nsp[0]\npoints to array.\n\nReturns the length of the array in sp[0].\n"
                },
                {
                    "name": "a_pusha",
                    "content": "Push array address onto stack.\n\nUsage:\nThis is used to set up a calling argument for a function.\n\nParameters:\n\ncdp[0]\narray reference follows the command.\n\nReturns the array in sp[0].\n"
                },
                {
                    "name": "a_test",
                    "content": "Test if an expression is present in an array.\n\nUsage:\n(expression in array)\n\nParameters:\n\nsp[0]\npoints to an array.\n\nsp[-1]\nis an expression.\n\nReturns 1 in sp[0] if the expression is found, 0 otherwise.\n"
                },
                {
                    "name": "add",
                    "content": "Add two numbers.\n\nUsage:\nfirst + second\n\nParameters:\n\nsp[0]\nholds the second value.\n\nsp[-1]\nholds the first value.\n\nReturns the sum in sp[0].\n"
                },
                {
                    "name": "add_asg",
                    "content": "Combined addition/assignment.\n\nUsage:\ntarget += source\n\nParameters:\n\nsp[0]\nis the source expression\n\nsp[-1]\npoints to the target\n\nStores the sum in the target, leaving sp[0] pointing to the target.\n"
                },
                {
                    "name": "ae_pusha",
                    "content": "Push reference to array cell, given expression for its index.\n\nUsage:\narrayname[expression]\n\nParameters:\n\ncdp[0]\nan array reference follows the command.\n\nsp[0]\nhas an expression, used for the index of a cell in the array.\n\nReturns a reference to the addressed cell in sp[0].\n"
                },
                {
                    "name": "ae_pushi",
                    "content": "Push contents of array cell, given expression for its index.\n\nUsage:\narrayname[expression]\n\nParameters:\n\nsp[0]\nhas an expression, used for the index of a cell in the array.\n\nReturns contents of the addressed cell in sp[0].\n"
                },
                {
                    "name": "aloop",
                    "content": "Update reference to next cell for array loop.\n\nUsage:\nfor ( i in arrayname )  statement\n\nParameters:\n\nnone\n\nMawk maintains a stack of array-loop state.  It updates the array/cell references in the cur‐\nrent loop's state.\n"
                },
                {
                    "name": "assign",
                    "content": "Assigns a value.\n\nUsage:\ntarget = source\n\nParameters:\n\nsp[0]\nis the source expression\n\nsp[-1]\npoints to the target\n\nStores the sum in the target, leaving sp[0] pointing to the target.\n"
                },
                {
                    "name": "atan2",
                    "content": "Compute arc-tangent of two values.\n\nUsage:\natan2( first, second )\n\nParameters:\n\nsp[0]\nholds the second value\n\nsp[-1]\nholds the first value\n\nReturns the result in sp[0].\n"
                },
                {
                    "name": "call",
                    "content": "Call a function.\n\nUsage:\nfunction()\n\nParameters:\n\ncdp[0]\nis a reference to the function block\n\ncdp[1]\nholds number of input arguments\n\nReturns function value in sp[0].\n"
                },
                {
                    "name": "cat",
                    "content": "Concatenate two strings.\n\nUsage:\nfirst second\n\nParameters:\n\nsp[0]\nis the second string.\n\nsp[-1]\nis the first string.\n\nReturns the result in sp[0].\n"
                },
                {
                    "name": "close",
                    "content": "Close the file or pipe associated with an expression.\n\nUsage:\nclose( expression )\n\nParameters:\n\nsp[0]\nholds the expression identifying the file to close\n\nReturns the status from closing the file, 0 on success or -1 on failure.\n"
                },
                {
                    "name": "cos",
                    "content": "Compute the cosine of a value in radians.\n\nUsage:\ncos( value )\n\nParameters:\n\nsp[0]\nis the value.\n\nReturns the result in sp[0].\n"
                },
                {
                    "name": "del_a",
                    "content": "Delete an array.\n\nUsage:\ndelete(array)\n\nParameters:\n\nsp[0]\nis the array to delete.\n"
                },
                {
                    "name": "div",
                    "content": "Divide one number by another.\n\nUsage:\nfirst / second\n\nParameters:\n\nsp[0]\nis the second value.\n\nsp[-1]\nis the first value.\n\nReturns the quotient in sp[0].\n"
                },
                {
                    "name": "div_asg",
                    "content": "Combined division/assignment.\n\nUsage:\ntarget /= source\n\nParameters:\n\nsp[0]\nis the source\n\nsp[-1]\npoints to the target\n\nStores the quotient in the target, leaving sp[0] pointing to the target.\n\neq\nCompare two values.\n\nUsage:\nfirst == second\n\nParameters:\n\nsp[0]\nis the second value\n\nsp[-1]\nis the first value\n\nReturns 1 in sp[0] if the values are equal, otherwise 0.\n"
                },
                {
                    "name": "exit",
                    "content": "Exits mawk with a specific exit-code.\n\nUsage:\nexit(exitcode)\n\nParameters:\n\nsp[0]\nis the exitcode\n"
                },
                {
                    "name": "exit0",
                    "content": "Exits mawk with success\n\nUsage:\nexit\n\nParameters:\nnone\n"
                },
                {
                    "name": "exp",
                    "content": "Compute base-e exponential function of a value.\n\nUsage:\nexp( value )\n\nParameters:\n\nsp[0]\nis the value\n\nReturns the result in sp[0].\n"
                },
                {
                    "name": "f_add_asg",
                    "content": "Combination addition/assignment to NF.\n\nUsage:\nNF += expression\n\nParameters:\n\nsp[0]\nis the expression to add\n"
                },
                {
                    "name": "f_assign",
                    "content": "Assign an expression to NF.\n\nUsage:\nNF = expression\n\nParameters:\n\nsp[0]\nis the expression\n"
                },
                {
                    "name": "f_div_asg",
                    "content": "Combination division/assignment to NF.\n\nUsage:\nNF /= expression\n\nParameters:\n\nsp[0]\nis the expression\n"
                },
                {
                    "name": "f_mod_asg",
                    "content": "Combination modulus/assignment to NF.\n\nUsage:\nNF %= expression\n\nParameters:\n\nsp[0]\nis the expression\n"
                },
                {
                    "name": "f_mul_asg",
                    "content": "Combination multiplication/assignment to NF.\n\nUsage:\nNF *= expression\n\nParameters:\n\nsp[0]\nis the expression\n"
                },
                {
                    "name": "f_post_dec",
                    "content": "Post-decrement using NF.\n\nUsage:\nNF--\n\nParameters:\nholds a reference to the field to use\n"
                },
                {
                    "name": "f_post_inc",
                    "content": "Post-increment using NF.\n\nUsage:\nNF++\n\nParameters:\nholds a reference to the field to use\n"
                },
                {
                    "name": "f_pow_asg",
                    "content": "Exponentiation using NF.\n\nUsage:\nNF ^= expression\n\nParameters:\n\nsp[0]\nis the expression to use\n"
                },
                {
                    "name": "f_pre_dec",
                    "content": "Predecrement using NF.\n\nUsage:\n--NF\n\nParameters:\n\nsp[0]\nholds a reference to the field to use\n"
                },
                {
                    "name": "f_pre_inc",
                    "content": "Preincrement using NF.\n\nUsage:\n++NF\n\nParameters:\n\nsp[0]\nholds a reference to the field to use\n"
                },
                {
                    "name": "f_pusha",
                    "content": "Push array reference to data split-up as fields..\n\nUsage:\n$0 = expression\ngetline\n\nParameters:\n\ncdp[0]\nis a reference to the data to be split/assigned.\n\nReturns the resulting array reference in sp[0].\n"
                },
                {
                    "name": "f_pushi",
                    "content": "Push contents of numbered field.\n\nUsage:\n$expression\n\nParameters:\n\ncdp[0]\nholds a reference to $expression\n\ncdp[1]\nholds expression\n\nReturns the field's value in sp[0].\n"
                },
                {
                    "name": "f_sub_asg",
                    "content": "Combination subtraction/assignment to NF.\n\nUsage:\nNF -= expression\n\nParameters:\n\nsp[0]\nholds a reference to the field to use\n"
                },
                {
                    "name": "fe_pusha",
                    "content": "Push reference to numbered field.\n\nUsage:\n$number\n\nParameters:\n\nsp[0]\nholds the field number\n\nReturns a reference to the field in sp[0].\n"
                },
                {
                    "name": "fe_pushi",
                    "content": "Push content of numbered field.\n\nUsage:\n$number\n\nParameters:\n\nsp[0]\nholds the field number\n\nReturns the field's content in sp[0].\n"
                },
                {
                    "name": "fflush",
                    "content": "Flush the output file or pipe associated with an expression.\n\nUsage:\nfflush( expression )\n\nParameters:\n\nsp[0]\nis the expression value\n\nReturns the result in sp[0].\n\ngt\nTest if first value is greater than the second.\n\nUsage:\nfirst > second\n\nParameters:\n\nsp[0]\nholds the second value.\n\nsp[-1]\nholds the first value.\n\nReturns 1 in sp[0] if the first value is greater than, otherwise 0.\n"
                },
                {
                    "name": "gte",
                    "content": "Test if first value is greater than or equal to the second.\n\nUsage:\nfirst >= second\n\nParameters:\n\nsp[0]\nholds the second value.\n\nsp[-1]\nholds the first value.\n\nReturns 1 in sp[0] if the first value is greater than or equal, otherwise 0.\n"
                },
                {
                    "name": "index",
                    "content": "Find the position of the second string in the first.\n\nUsage:\nindex( first, second )\n\nParameters:\n\nsp[0]\nis the second string\n\nsp[0]\nis the first string\n\nReturns the position in sp[0] starting at 1 if found, 0 if not found.\n"
                },
                {
                    "name": "int",
                    "content": "Returns a value truncated towards zero..\n\nUsage:\nint( value )\n\nParameters:\n\nsp[0]\nis the value\n\nReturns the result in sp[0].\n"
                },
                {
                    "name": "jmain",
                    "content": "Go from BEGIN code to MAIN code.\n\nUsage:\n(internal state)\n\nParameters:\n\nnone\n"
                },
                {
                    "name": "jmp",
                    "content": "Jump to a new byte-code position, by a given number of bytes.\n\nUsage:\n(internal state)\n\nParameters:\n\ncdp[0]\nholds the (signed) number of bytes by which to jump.\n"
                },
                {
                    "name": "jnz",
                    "content": "Jump to a new byte-code position if sp[0] is nonzero, by a given number of bytes.\n\nUsage:\n(internal state)\n\nParameters:\n\ncdp[0]\nholds the (signed) number of bytes by which to jump.\n\nsp[0]\nholds a value to compare against 0.\n\njz\nJump to a new byte-code position if sp[0] is zero, by a given number of bytes.\n\nUsage:\n(internal state)\n\nParameters:\n\ncdp[0]\nholds the (signed) number of bytes by which to jump.\n\nsp[0]\nholds a value to compare against 0.\n"
                },
                {
                    "name": "l_pusha",
                    "content": "Push a local address onto the evaluation stack.\n\nUsage:\n(internal state)\n\nParameters:\n\ncdp[0]\nholds the offset from the frame pointer fp.\n\nReturns the address in sp[0].\n"
                },
                {
                    "name": "l_pushi",
                    "content": "Push contents of a local variable onto the evaluation stack.\n\nUsage:\n(internal state)\n\nParameters:\n\ncdp[0]\nholds the offset from the frame pointer fp.\n\nReturns the contents of the local variable in sp[0].\n"
                },
                {
                    "name": "la_pusha",
                    "content": "Pushes a reference to an array onto the evaluation stack.\n\nUsage:\narrayname\n\nParameters:\n\ncdp[0]\nholds the offset from the frame pointer fp of a reference to an array.\n\nReturns a reference to the array in sp[0].\n"
                },
                {
                    "name": "lae_pusha",
                    "content": "Pushes a reference to a given array cell onto the evaluation stack.\n\nUsage:\narrayname[expression]\n\nParameters:\n\ncdp[0]\nholds the offset from the frame pointer fp of a reference to an array.\n\nsp[0]\nholds an expression\n\nReturns a reference to the specified array cell in sp[0].\n"
                },
                {
                    "name": "lae_pushi",
                    "content": "Pushes the contents of a given array cell onto the evaluation stack.\n\nUsage:\narrayname[expression]\n\nParameters:\n\ncdp[0]\nholds the offset from the frame pointer fp of a reference to an array.\n\nsp[0]\nholds an expression\n\nReturns the contents of the specified array cell in sp[0].\n"
                },
                {
                    "name": "length",
                    "content": "Returns the length of a string or array value.\n\nUsage:\nlength( value )\n\nParameters:\n\nsp[0]\nis the string or array reference\n\nReturns the length in sp[0].\n"
                },
                {
                    "name": "ljnz",
                    "content": "Special jump for logical-OR, always preceded by test.\n\nUsage:\n(internal state)\n\nParameters:\n\ncdp[0]\nholds the (signed) number of bytes by which to jump if the value is nonzero.\n\nsp[0]\nholds a value to compare against 0.\n"
                },
                {
                    "name": "ljz",
                    "content": "Special jump for logical-OR, always preceded by test.\n\nUsage:\n(internal state)\n\nParameters:\n\ncdp[0]\nholds the (signed) number of bytes by which to jump if the value is zero.\n\nsp[0]\nholds a value to compare against 0.\n"
                },
                {
                    "name": "log",
                    "content": "Compute the natural logarithm of a value.\n\nUsage:\nlog( value )\n\nParameters:\n\nsp[0]\nis the value\n\nReturns the result in sp[0].\n\nlt\nTest if first value is less than the second.\n\nUsage:\nfirst < second\n\nParameters:\n\nsp[0]\nholds the second value.\n\nsp[-1]\nholds the first value.\n\nReturns 1 in sp[0] if the first value is less than, otherwise 0.\n"
                },
                {
                    "name": "lte",
                    "content": "Test if first value is less than or equal to the second.\n\nUsage:\nfirst <= second\n\nParameters:\n\nsp[0]\nholds the second value.\n\nsp[-1]\nholds the first value.\n\nReturns 1 in sp[0] if the first value is less than or equal, otherwise 0.\n"
                },
                {
                    "name": "match0",
                    "content": "Test if $0 matches a given regular expression.\n\nUsage:\n$0 ~ regex\n\nParameters:\n\ncdp[0]\nholds a reference to a regular expression.\n\nReturns 1 in sp[0] if $0 matches the regular expression, 0 otherwise.\n"
                },
                {
                    "name": "match1",
                    "content": "Test if a given expression matches a given regular expression.\n\nUsage:\nexpression ~ regex\n\nParameters:\n\ncdp[0]\nholds a reference to a regular expression.\n\nsp[0]\nholds an expression to test.\n\nReturns 1 in sp[0] if the expression matches the regular expression, 0 otherwise.\n"
                },
                {
                    "name": "match2",
                    "content": "Test if an expression in sp[-1] matches the regular expression in sp[0].\n\nUsage:\nexpression ~ regex\n\nParameters:\n\nsp[0]\nholds a reference to a regular expression.\n\nsp[-1]\nholds an expression to test.\n\nReturns 1 in sp[0] if the expression matches the regular expression, 0 otherwise.\n"
                },
                {
                    "name": "mktime",
                    "content": "Converts  a date specification in systime format to a timestamp.\n\nUsage:\nmktime( string )\n\nParameters:\n\nsp[0]\nholds the date-specification string\n\nReturns the result in sp[0].\n"
                },
                {
                    "name": "mod",
                    "content": "Compute modulus/remainder with two operands.\n\nUsage:\nfirst % second\n\nParameters:\n\nsp[0]\nholds the second operand\n\nsp[-1]\nholds the first operand\n\nReturns the remainder in sp[0].\n"
                },
                {
                    "name": "mod_asg",
                    "content": "Assign modulus/remainder with two operands.\n\nUsage:\nfirst %= second\n\nParameters:\n\nsp[0]\nholds the second operand\n\ncdp[0]\nholds the first operand\n\nReturns the remainder in sp[0] as well as replacing the first value.\n"
                },
                {
                    "name": "mul",
                    "content": "Compute product with two operands.\n\nUsage:\nfirst * second\n\nParameters:\n\nsp[0]\nholds the second value\n\nsp[-1]\nholds the first value\n\nReturns the product in sp[0].\n"
                },
                {
                    "name": "mul_asg",
                    "content": "Assign product with two operands.\n\nUsage:\nfirst *= second\n\nParameters:\n\nsp[0]\nholds the second value\n\nsp[-1]\nholds the first value\n\nReturns the product in sp[0] as well as replacing the first value.\n"
                },
                {
                    "name": "neq",
                    "content": "Compare two values.\n\nUsage:\nfirst != second\n\nParameters:\n\nsp[0]\nis the second value\n\nsp[-1]\nis the first value\n\nReturns 1 in sp[0] if the values are not equal, otherwise 0.\n"
                },
                {
                    "name": "next",
                    "content": "Read the next record, restart pattern testing.\n\nUsage:\nnext\n\nParameters:\n\nnone\n"
                },
                {
                    "name": "nextfile",
                    "content": "Begin processing the next file listed on the command line.\n\nUsage:\nnextfile\n\nParameters:\n\nnone\n"
                },
                {
                    "name": "nf_pushi",
                    "content": "Push the number of fields (NF) onto the evaluation stack.\n\nUsage:\n(internal state)\n\nParameters:\n\nnone\n"
                },
                {
                    "name": "not",
                    "content": "Compute a logical negation.\n\nUsage:\n! value\n\nParameters:\n\nsp[0]\nholds a value to negate.\n\nReturns the result on the evaluation stack, i.e., 0 if the value is nonzero and 1 otherwise.\n"
                },
                {
                    "name": "ol_gl",
                    "content": "Read into $0 using getline.\n\nUsage:\ngetline\n\nParameters:\n\nnone\n"
                },
                {
                    "name": "ol_gl_nr",
                    "content": "Read into $0 using getline, updating NR and FNR.\n\nUsage:\ngetline < file\n\nParameters:\n\nnone\n"
                },
                {
                    "name": "omain",
                    "content": "Start executing the main section of the script (between BEGIN and END).\n\nUsage:\n(internal state)\n\nParameters:\n\nnone\n"
                },
                {
                    "name": "pop",
                    "content": "Pop the evaluation stack, discarding the value.\n\nUsage:\n(internal state)\n\nParameters:\n\nnone\n"
                },
                {
                    "name": "pop_al",
                    "content": "Finish an array “in” loop, deallocating the state information.\n\nUsage:\n(internal state)\n\nParameters:\n\nnone\n"
                },
                {
                    "name": "post_dec",
                    "content": "Post-decrement a value.\n\nUsage:\nvalue --\n\nParameters:\n\nsp[0]\nholds the value to decrement\n\nReturns the updated value in sp[0].\n"
                },
                {
                    "name": "post_inc",
                    "content": "Post-increment a value.\n\nUsage:\nvalue ++\n\nParameters:\n\nsp[0]\nholds the value to increment\n\nReturns the updated value in sp[0].\n"
                },
                {
                    "name": "pow",
                    "content": "Compute the first value raised to the power of the second value.\n\nUsage:\nfirst ^ second\n\nParameters:\n\nsp[0]\nholds the second value\n\nsp[-1]\nholds the first value\n\nReturns the result in sp[0].\n"
                },
                {
                    "name": "pow_asg",
                    "content": "Assign the first value raised to the power of the second value.\n\nUsage:\nvariable = first ^ second\n\nParameters:\n\ncdp[0]\nis a reference to the variable which will be assigned the result\n\nsp[0]\nholds the second value\n\nsp[-1]\nholds the first value\n"
                },
                {
                    "name": "pre_dec",
                    "content": "Pre-decrement a value.\n\nUsage:\n-- value\n\nParameters:\n\nsp[0]\nholds the value to decrement.\n\nReturns the updated value in sp[0];.\n"
                },
                {
                    "name": "pre_inc",
                    "content": "Pre-increment a value.\n\nUsage:\n++ value\n\nParameters:\n\nsp[0]\nholds the value to decrement.\n\nReturns the updated value in sp[0];.\n"
                },
                {
                    "name": "pusha",
                    "content": "Push array address onto stack.\n\nUsage:\n(internal state)\n\nParameters:\n\ncdp[0]\narray reference follows the command.\n\nReturns the array in sp[0].\n"
                },
                {
                    "name": "pushc",
                    "content": "Push a data cell onto the evaluation stack.\n\nUsage:\n(internal state)\n\nParameters:\n\ncdp[0]\nis a reference to the data to push\n\nReturns a reference to the result in sp[0].\n"
                },
                {
                    "name": "pushd",
                    "content": "Push a double floating value onto the evaluation stack.\n\nUsage:\n(internal state)\n\nParameters:\n\ncdp[0]\nis a reference to the data to push\n\nReturns a reference to the result in sp[0].\n"
                },
                {
                    "name": "pushi",
                    "content": "Push contents of next referenced variable onto the evaluation stack.\n\nUsage:\n(internal state)\n\nParameters:\n\ncdp[0]\nis a reference to the data cell to copy.\n\nReturns a reference to the result in sp[0].\n"
                },
                {
                    "name": "pushint",
                    "content": "Reserve the next slot on the evaluation stack, setting its type.\n\nUsage:\n(internal state)\n\nParameters:\n\ncdp[0]\nholds the type to set in the new slot, e.g., for data via I/O redirection\n\nReturns a reference to the result in sp[0].\n"
                },
                {
                    "name": "pushs",
                    "content": "Push a reference to a string value onto the evaluation stack.\n\nUsage:\n(internal state)\n\nParameters:\n\ncdp[0]\nholds a reference to the string value\n\nReturns a reference to the result in sp[0].\n"
                },
                {
                    "name": "rand",
                    "content": "Returns a random number between zero and one..\n\nUsage:\nrand()\n\nParameters:\n\nnone\n\nReturns the result in sp[0].\n"
                },
                {
                    "name": "range",
                    "content": "Test a range pattern:  pat1, pat2 { action }.\n\nUsage:\n(internal state)\n\nParameters:\n\ncdp[0].op\na flag, test pat1 if on else pat2\n\ncdp[1].op\noffset of pat2 code from cdp\n\ncdp[2].op\noffset of action code from cdp\n\ncdp[3].op\noffset of code after the action from cdp\n\ncdp[4]\nstart of pat1 code\n\nsp[0]\nholds arguments for the action.\n"
                },
                {
                    "name": "ret",
                    "content": "Return a function value.\n\nUsage:\nreturn value\n\nParameters:\n\nsp[0]\nholds the return value\n\nWhen  calling  a function, mawk saves the current stack, creating a new one.  On return, mawk\nrestores the previous stack and returns the function value in sp[0].\n"
                },
                {
                    "name": "ret0",
                    "content": "Return from a function without providing a return-value.\n\nUsage:\nreturn\n\nParameters:\n\nsp[0]\nis modified to make the value uninitialized.\n\nAs in the ret operation, mawk restores the previous stack.  After the  return,  sp[0]  is  an\nuninitialized value.\n"
                },
                {
                    "name": "set_al",
                    "content": "Begin an array “in” loop.\n\nUsage:\nfor ( iterator in arrayname )  statement\n\nParameters:\n\nsp[0]\nholds a reference to the array\n\nsp[-1]\nholds a reference to the iteration variable\n\nMawk  pushes a new entry onto the array loop stack, and updates cdp to point to the statement\nto execute.\n"
                },
                {
                    "name": "sin",
                    "content": "Compute the sine of a value in radians.\n\nUsage:\nsin( value )\n\nParameters:\n\nsp[0]\nholds the value\n\nReturns the result in sp[0].\n"
                },
                {
                    "name": "sprintf",
                    "content": "Returns a string constructed from expression-list according to format.\n\nUsage:\nsprintf( format [, value1 [,... ] ] )\n\nParameters:\n\nsp[0]\nis the last parameter value; there can be up to 255.\nReturns the resulting string in sp[0].\n"
                },
                {
                    "name": "sqrt",
                    "content": "Returns the square root of a value.\n\nUsage:\nsqrt( value 0\n\nParameters:\n\nsp[0]\nis the value\n\nReturns the result in sp[0].\n"
                },
                {
                    "name": "srand",
                    "content": "Seeds the random number generator.\n\nUsage:\nsrand( value )\nsrand( )\n\nParameters:\n\nsp[0]\nis the seed value, which may be uninitialized\n\nReturns the previous seed value in sp[0].\n"
                },
                {
                    "name": "stop",
                    "content": "Finish a range pattern.\n\nUsage:\n(internal state)\n\nParameters:\n\nnone\n"
                },
                {
                    "name": "strftime",
                    "content": "Formats the given timestamp using the given format.\n\nUsage:\nstrftime( format , timestamp , utc )\nstrftime( format , timestamp )\nstrftime( format )\nstrftime( )\n\nParameters:\n\nZero to three parameters may be on the stack.  If all three are used, they are  as  fol‐\nlows:\n\nsp[0]\nis the utc flag\n\nsp[-1]\nis the timestamp value\n\nsp[-2]\nis the format\n\nReturns the result in sp[0].\n"
                },
                {
                    "name": "sub",
                    "content": "Subtract the second value from the first.\n\nUsage:\nfirst - second\n\nParameters:\n\nsp[0]\nholds the second value\n\nsp[-1]\nholds the first value\n\nReturns the result in sp[0].\n"
                },
                {
                    "name": "sub_asg",
                    "content": "Assign the difference of two values to a variable.\n\nUsage:\ntarget = first - second\n\nParameters:\n\ncdp[0]\nholds a reference to the variable to which to assign the result\n\nsp[0]\nholds the second value\n\nsp[-1]\nholds the first value\n\nStores the difference in the target, leaving sp[0] pointing to the target.\n"
                },
                {
                    "name": "substr",
                    "content": "eturns the substring of string s, starting at index i, of length n.\n\nUsage:\nsubstr(s,i,n)\nsubstr(s,i)\n\nParameters:\n\nTwo  or  three  parameters may be on the stack.  If all three are used, they are as fol‐\nlows:\n\nsp[0]\nholds the length n.\n\nsp[0]\nholds the index i.\n\nsp[0]\nholds the string s.\n"
                },
                {
                    "name": "system",
                    "content": "Executes a command, returning the wait-status.\n\nUsage:\nstatus = system( command )\n\nParameters:\n\nsp[0]\nis the command to execute\n\nReturns the wait-status in sp[0].\n"
                },
                {
                    "name": "systime",
                    "content": "Returns the current time of day as the number of seconds since the Epoch.\n\nUsage:\nsystime( )\n\nParameters:\n\nnone\n\nReturns the result in sp[0].\n"
                },
                {
                    "name": "test",
                    "content": "Test a logical expression.\n\nUsage:\nvalue\n\nParameters:\n\nsp[0]\nholds a value to test.\n\nReturns the result on the evaluation stack, i.e., 1 if the value is nonzero and 0 otherwise.\n"
                },
                {
                    "name": "tolower",
                    "content": "Copy a string, converting to lowercase.\n\nUsage:\ntolower( value )\n\nParameters:\n\nsp[0]\nis the value to convert\n\nReturns the result in sp[0].\n"
                },
                {
                    "name": "toupper",
                    "content": "Copy a string, converting to uppercase.\n\nUsage:\ntoupper( value )\n\nParameters:\n\nsp[0]\nis the value to convert\n\nReturns the result in sp[0].\n"
                },
                {
                    "name": "uminus",
                    "content": "Unitary minus.\n\nUsage:\n- value\n\nParameters:\n\nsp[0]\ncontains a value to negate.  As a side-effect, if the value is a string, it is cast\nto double floating point.\n\nReturns the result in sp[0].\n"
                },
                {
                    "name": "uplus",
                    "content": "Unitary plus.\n\nUsage:\n+ value\n\nParameters:\n\nsp[0]\ncontains a value to use.  As a side-effect, if the value is a string, it is cast to\ndouble floating point.\n\nReturns the result in sp[0].\n"
                }
            ]
        },
        "REGULAR EXPRESSIONS": {
            "content": "M1J\nmandatory jump\n\nM2JA\noptional (undesirable) jump\n\nM2JB\noptional (desirable) jump\n\nM2JC\npop pos'n, optional jump if advanced\n\nMACCEPT\nend of match\n\nMANY\narbitrary character (.)\n\nMCLASS\ncharacter class\n\nMEND\nend of string ($)\n\nMSAVEPOS\npush position onto stack\n\nMSTART\nstart of string (^)\n\nMSTR\nmatching a literal string\n\nMU\narbitrary string (.*)\n\nVersion 1.3.4                                2024-01-23                                 MAWK-CODE(7)",
            "subsections": []
        }
    },
    "summary": "mawk-code - dumping mawk's byte-code",
    "flags": [],
    "examples": [],
    "see_also": []
}