argv0 1 user commands djbwares
argv0 runs a program with a specified 0th argument.
`argv0` realname zero args

## Description

realname is one argument. zero is one argument. args is any number of arguments.

`argv0` runs the program stored as realname on disk, with zero as the 0th argument (rather than realname) and args as the remaining arguments.

## Applications

Some programs pay special attention to the 0th argument. `argv0` makes these programs usable from shell scripts.

For example, `argv0 /bin/csh -csh` runs `/bin/csh` with a 0th argument of `-csh`. `/bin/csh` will think it is a login shell and behave accordingly.
As another example, the command `tcpserver 0 ftp argv0 tcpd ftpd -l -A` has a similar effect to the line

    ftp stream tcp nowait root tcpd ftpd -l -A

in `/etc/inetd.conf`. The `tcpd` program is run with 0th argument ftpd and remaining arguments -l -A. Note that `tcpd` can and should be replaced by the -x option of tcpserver 1: `tcpserver -x ftp.tcp 0 ftp ftpd -l -A`

## See also

tcpserver 1
tcprules 1
tcprulescheck 1
fixcrio 1
recordio 1
rblsmtpd 1
tcpclient 1
who@1
date@1
finger@1
http@1
tcpcat 1
mconnect 1
tcp-environ 5

## Author

Original code and documentation by Daniel J. Bernstein. Converted to DocBook XML by Jonathan de Boyne Pollard.