---
name: "argv0"
section: "1"
platform: "linux"
package: "ucspi-tcp"
version: "1:0.88-13"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/argv0"
---

# argv0(1)

runs a program with a specified 0th argument.

## NAME

argv0 - runs a program with a specified 0th argument.

## SYNOPSIS

**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/1.md):

-

  tcpserver -x ftp.tcp 0 ftp ftpd -l -A

## SEE ALSO

[tcpserver(1)](/tcpserver/1.md), [tcprules(1)](/tcprules/1.md), [tcprulescheck(1)](/tcprulescheck/1.md), [fixcrio(1)](/fixcrio/1.md), [recordio(1)](/recordio/1.md), [rblsmtpd(1)](/rblsmtpd/1.md), [tcpclient(1)](/tcpclient/1.md), who@(1), date@(1), finger@(1), http@(1), [tcpcat(1)](/tcpcat/1.md), [mconnect(1)](/mconnect/1.md), [tcp-environ(5)](/tcp-environ/5.md)

http://cr.yp.to/ucspi-tcp.html
