|
Packit Service |
603f59 |
/*
|
|
Packit Service |
603f59 |
* usage.c - usage functions for lsof
|
|
Packit Service |
603f59 |
*/
|
|
Packit Service |
603f59 |
|
|
Packit Service |
603f59 |
|
|
Packit Service |
603f59 |
/*
|
|
Packit Service |
603f59 |
* Copyright 1998 Purdue Research Foundation, West Lafayette, Indiana
|
|
Packit Service |
603f59 |
* 47907. All rights reserved.
|
|
Packit Service |
603f59 |
*
|
|
Packit Service |
603f59 |
* Written by Victor A. Abell
|
|
Packit Service |
603f59 |
*
|
|
Packit Service |
603f59 |
* This software is not subject to any license of the American Telephone
|
|
Packit Service |
603f59 |
* and Telegraph Company or the Regents of the University of California.
|
|
Packit Service |
603f59 |
*
|
|
Packit Service |
603f59 |
* Permission is granted to anyone to use this software for any purpose on
|
|
Packit Service |
603f59 |
* any computer system, and to alter it and redistribute it freely, subject
|
|
Packit Service |
603f59 |
* to the following restrictions:
|
|
Packit Service |
603f59 |
*
|
|
Packit Service |
603f59 |
* 1. Neither the authors nor Purdue University are responsible for any
|
|
Packit Service |
603f59 |
* consequences of the use of this software.
|
|
Packit Service |
603f59 |
*
|
|
Packit Service |
603f59 |
* 2. The origin of this software must not be misrepresented, either by
|
|
Packit Service |
603f59 |
* explicit claim or by omission. Credit to the authors and Purdue
|
|
Packit Service |
603f59 |
* University must appear in documentation and sources.
|
|
Packit Service |
603f59 |
*
|
|
Packit Service |
603f59 |
* 3. Altered versions must be plainly marked as such, and must not be
|
|
Packit Service |
603f59 |
* misrepresented as being the original software.
|
|
Packit Service |
603f59 |
*
|
|
Packit Service |
603f59 |
* 4. This notice may not be removed or altered.
|
|
Packit Service |
603f59 |
*/
|
|
Packit Service |
603f59 |
|
|
Packit Service |
603f59 |
#ifndef lint
|
|
Packit Service |
603f59 |
static char copyright[] =
|
|
Packit Service |
603f59 |
"@(#) Copyright 1998 Purdue Research Foundation.\nAll rights reserved.\n";
|
|
Packit Service |
603f59 |
static char *rcsid = "$Id: usage.c,v 1.33 2018/02/14 14:20:14 abe Exp $";
|
|
Packit Service |
603f59 |
#endif
|
|
Packit Service |
603f59 |
|
|
Packit Service |
603f59 |
|
|
Packit Service |
603f59 |
#include "lsof.h"
|
|
Packit Service |
603f59 |
#include "version.h"
|
|
Packit Service |
603f59 |
|
|
Packit Service |
603f59 |
|
|
Packit Service |
603f59 |
/*
|
|
Packit Service |
603f59 |
* Local function prototypes
|
|
Packit Service |
603f59 |
*/
|
|
Packit Service |
603f59 |
|
|
Packit Service |
603f59 |
_PROTOTYPE(static char *isnullstr,(char *s));
|
|
Packit Service |
603f59 |
_PROTOTYPE(static int print_in_col,(int col, char *cp));
|
|
Packit Service |
603f59 |
_PROTOTYPE(static void report_HASDCACHE,(int type, char *ttl, char *det));
|
|
Packit Service |
603f59 |
_PROTOTYPE(static void report_HASKERNIDCK,(char *pfx, char *verb));
|
|
Packit Service |
603f59 |
_PROTOTYPE(static void report_SECURITY,(char *pfx, char *punct));
|
|
Packit Service |
603f59 |
_PROTOTYPE(static void report_WARNDEVACCESS,(char *pfx, char *verb,
|
|
Packit Service |
603f59 |
char *punct));
|
|
Packit Service |
603f59 |
|
|
Packit Service |
603f59 |
|
|
Packit Service |
603f59 |
/*
|
|
Packit Service |
603f59 |
* isnullstr() - is it a null string?
|
|
Packit Service |
603f59 |
*/
|
|
Packit Service |
603f59 |
|
|
Packit Service |
603f59 |
static char *
|
|
Packit Service |
603f59 |
isnullstr(s)
|
|
Packit Service |
603f59 |
char *s; /* string pointer */
|
|
Packit Service |
603f59 |
{
|
|
Packit Service |
603f59 |
if (!s)
|
|
Packit Service |
603f59 |
return((char *)NULL);
|
|
Packit Service |
603f59 |
while (*s) {
|
|
Packit Service |
603f59 |
if (*s != ' ')
|
|
Packit Service |
603f59 |
return(s);
|
|
Packit Service |
603f59 |
s++;
|
|
Packit Service |
603f59 |
}
|
|
Packit Service |
603f59 |
return((char *)NULL);
|
|
Packit Service |
603f59 |
}
|
|
Packit Service |
603f59 |
|
|
Packit Service |
603f59 |
|
|
Packit Service |
603f59 |
/*
|
|
Packit Service |
603f59 |
* print_in_col() -- print character string in help column
|
|
Packit Service |
603f59 |
*/
|
|
Packit Service |
603f59 |
|
|
Packit Service |
603f59 |
static int
|
|
Packit Service |
603f59 |
print_in_col(col, cp)
|
|
Packit Service |
603f59 |
int col; /* column number */
|
|
Packit Service |
603f59 |
char *cp; /* what to print */
|
|
Packit Service |
603f59 |
{
|
|
Packit Service |
603f59 |
if (cp && *cp) {
|
|
Packit Service |
603f59 |
switch (col) {
|
|
Packit Service |
603f59 |
case 1:
|
|
Packit Service |
603f59 |
(void) fprintf(stderr, " %-23.23s", cp);
|
|
Packit Service |
603f59 |
break;
|
|
Packit Service |
603f59 |
case 2:
|
|
Packit Service |
603f59 |
(void) fprintf(stderr, " %-25.25s", cp);
|
|
Packit Service |
603f59 |
break;
|
|
Packit Service |
603f59 |
default:
|
|
Packit Service |
603f59 |
(void) fprintf(stderr, " %s\n", cp);
|
|
Packit Service |
603f59 |
col = 0;
|
|
Packit Service |
603f59 |
}
|
|
Packit Service |
603f59 |
col++;
|
|
Packit Service |
603f59 |
}
|
|
Packit Service |
603f59 |
return(col);
|
|
Packit Service |
603f59 |
}
|
|
Packit Service |
603f59 |
|
|
Packit Service |
603f59 |
|
|
Packit Service |
603f59 |
/*
|
|
Packit Service |
603f59 |
* report_HASDCACHE() -- report device cache file state
|
|
Packit Service |
603f59 |
*/
|
|
Packit Service |
603f59 |
|
|
Packit Service |
603f59 |
static void
|
|
Packit Service |
603f59 |
report_HASDCACHE(type, ttl, det)
|
|
Packit Service |
603f59 |
int type; /* type: 0 == read path report
|
|
Packit Service |
603f59 |
* 1 == full report */
|
|
Packit Service |
603f59 |
char *ttl; /* title lines prefix
|
|
Packit Service |
603f59 |
* (NULL if none) */
|
|
Packit Service |
603f59 |
char *det; /* detail lines prefix
|
|
Packit Service |
603f59 |
* (NULL if none) */
|
|
Packit Service |
603f59 |
{
|
|
Packit Service |
603f59 |
|
|
Packit Service |
603f59 |
#if defined(HASDCACHE)
|
|
Packit Service |
603f59 |
char *cp;
|
|
Packit Service |
603f59 |
int dx;
|
|
Packit Service |
603f59 |
|
|
Packit Service |
603f59 |
# if defined(WILLDROPGID)
|
|
Packit Service |
603f59 |
int saved_Setgid = Setgid;
|
|
Packit Service |
603f59 |
|
|
Packit Service |
603f59 |
Setgid = 0;
|
|
Packit Service |
603f59 |
# endif /* defined(WILLDROPGID) */
|
|
Packit Service |
603f59 |
|
|
Packit Service |
603f59 |
if (type) {
|
|
Packit Service |
603f59 |
|
|
Packit Service |
603f59 |
/*
|
|
Packit Service |
603f59 |
* Report full device cache information.
|
|
Packit Service |
603f59 |
*/
|
|
Packit Service |
603f59 |
(void) fprintf(stderr, "%sDevice cache file read-only paths:\n",
|
|
Packit Service |
603f59 |
ttl ? ttl : "");
|
|
Packit Service |
603f59 |
if ((dx = dcpath(1, 0)) < 0)
|
|
Packit Service |
603f59 |
(void) fprintf(stderr, "%snone\n", det ? det : "");
|
|
Packit Service |
603f59 |
else {
|
|
Packit Service |
603f59 |
(void) fprintf(stderr, "%sNamed via -D: %s\n",
|
|
Packit Service |
603f59 |
det ? det : "",
|
|
Packit Service |
603f59 |
DCpath[0] ? DCpath[0] : "none");
|
|
Packit Service |
603f59 |
|
|
Packit Service |
603f59 |
# if defined(HASENVDC)
|
|
Packit Service |
603f59 |
(void) fprintf(stderr,
|
|
Packit Service |
603f59 |
"%sNamed in environment variable %s: %s\n",
|
|
Packit Service |
603f59 |
det ? det : "",
|
|
Packit Service |
603f59 |
HASENVDC, DCpath[1] ? DCpath[1] : "none");
|
|
Packit Service |
603f59 |
# endif /* defined(HASENVDC) */
|
|
Packit Service |
603f59 |
|
|
Packit Service |
603f59 |
# if defined(HASSYSDC)
|
|
Packit Service |
603f59 |
if (DCpath[2])
|
|
Packit Service |
603f59 |
(void) fprintf(stderr,
|
|
Packit Service |
603f59 |
"%sSystem-wide device cache: %s\n",
|
|
Packit Service |
603f59 |
det ? det : "",
|
|
Packit Service |
603f59 |
DCpath[2]);
|
|
Packit Service |
603f59 |
# endif /* defined(HASSYSDC) */
|
|
Packit Service |
603f59 |
|
|
Packit Service |
603f59 |
# if defined(HASPERSDC)
|
|
Packit Service |
603f59 |
(void) fprintf(stderr,
|
|
Packit Service |
603f59 |
"%sPersonal path format (HASPERSDC): \"%s\"\n",
|
|
Packit Service |
603f59 |
det ? det : "",
|
|
Packit Service |
603f59 |
HASPERSDC);
|
|
Packit Service |
603f59 |
# if defined(HASPERSDCPATH)
|
|
Packit Service |
603f59 |
(void) fprintf(stderr,
|
|
Packit Service |
603f59 |
"%sModified personal path environment variable: %s\n",
|
|
Packit Service |
603f59 |
det ? det : "",
|
|
Packit Service |
603f59 |
HASPERSDCPATH);
|
|
Packit Service |
603f59 |
cp = getenv(HASPERSDCPATH);
|
|
Packit Service |
603f59 |
(void) fprintf(stderr, "%s%s value: %s\n",
|
|
Packit Service |
603f59 |
det ? det : "",
|
|
Packit Service |
603f59 |
HASPERSDCPATH, cp ? cp : "none");
|
|
Packit Service |
603f59 |
# endif /* defined(HASPERSDCPATH) */
|
|
Packit Service |
603f59 |
(void) fprintf(stderr, "%sPersonal path: %s\n",
|
|
Packit Service |
603f59 |
det ? det : "",
|
|
Packit Service |
603f59 |
DCpath[3] ? DCpath[3] : "none");
|
|
Packit Service |
603f59 |
# endif /* defined(HASPERSDC) */
|
|
Packit Service |
603f59 |
}
|
|
Packit Service |
603f59 |
(void) fprintf(stderr, "%sDevice cache file write paths:\n",
|
|
Packit Service |
603f59 |
ttl ? ttl : "");
|
|
Packit Service |
603f59 |
if ((dx = dcpath(2, 0)) < 0)
|
|
Packit Service |
603f59 |
(void) fprintf(stderr, "%snone\n", det ? det : "");
|
|
Packit Service |
603f59 |
else {
|
|
Packit Service |
603f59 |
(void) fprintf(stderr, "%sNamed via -D: %s\n",
|
|
Packit Service |
603f59 |
det ? det : "",
|
|
Packit Service |
603f59 |
DCstate == 2 ? "none"
|
|
Packit Service |
603f59 |
: DCpath[0] ? DCpath[0] : "none");
|
|
Packit Service |
603f59 |
|
|
Packit Service |
603f59 |
# if defined(HASENVDC)
|
|
Packit Service |
603f59 |
(void) fprintf(stderr,
|
|
Packit Service |
603f59 |
"%sNamed in environment variable %s: %s\n",
|
|
Packit Service |
603f59 |
det ? det : "",
|
|
Packit Service |
603f59 |
HASENVDC, DCpath[1] ? DCpath[1] : "none");
|
|
Packit Service |
603f59 |
# endif /* defined(HASENVDC) */
|
|
Packit Service |
603f59 |
|
|
Packit Service |
603f59 |
# if defined(HASPERSDC)
|
|
Packit Service |
603f59 |
(void) fprintf(stderr,
|
|
Packit Service |
603f59 |
"%sPersonal path format (HASPERSDC): \"%s\"\n",
|
|
Packit Service |
603f59 |
det ? det : "",
|
|
Packit Service |
603f59 |
HASPERSDC);
|
|
Packit Service |
603f59 |
# if defined(HASPERSDCPATH)
|
|
Packit Service |
603f59 |
(void) fprintf(stderr,
|
|
Packit Service |
603f59 |
"%sModified personal path environment variable: %s\n",
|
|
Packit Service |
603f59 |
det ? det : "",
|
|
Packit Service |
603f59 |
HASPERSDCPATH);
|
|
Packit Service |
603f59 |
cp = getenv(HASPERSDCPATH);
|
|
Packit Service |
603f59 |
(void) fprintf(stderr, "%s%s value: %s\n",
|
|
Packit Service |
603f59 |
det ? det : "",
|
|
Packit Service |
603f59 |
HASPERSDCPATH, cp ? cp : "none");
|
|
Packit Service |
603f59 |
# endif /* defined(HASPERSDCPATH) */
|
|
Packit Service |
603f59 |
(void) fprintf(stderr, "%sPersonal path: %s\n",
|
|
Packit Service |
603f59 |
det ? det : "",
|
|
Packit Service |
603f59 |
DCpath[3] ? DCpath[3] : "none");
|
|
Packit Service |
603f59 |
# endif /* defined(HASPERSDC) */
|
|
Packit Service |
603f59 |
}
|
|
Packit Service |
603f59 |
} else {
|
|
Packit Service |
603f59 |
|
|
Packit Service |
603f59 |
/*
|
|
Packit Service |
603f59 |
* Report device cache read file path.
|
|
Packit Service |
603f59 |
*/
|
|
Packit Service |
603f59 |
|
|
Packit Service |
603f59 |
# if defined(HASENVDC) || defined(HASPERSDC) || defined(HASSYSDC)
|
|
Packit Service |
603f59 |
cp = NULL;
|
|
Packit Service |
603f59 |
# if defined(HASENVDC)
|
|
Packit Service |
603f59 |
if ((dx = dcpath(1, 0)) >= 0)
|
|
Packit Service |
603f59 |
cp = DCpath[1];
|
|
Packit Service |
603f59 |
# endif /* defined(HASENVDC) */
|
|
Packit Service |
603f59 |
# if defined(HASSYSDC)
|
|
Packit Service |
603f59 |
if (!cp)
|
|
Packit Service |
603f59 |
cp = HASSYSDC;
|
|
Packit Service |
603f59 |
# endif /* defined(HASSYSDC) */
|
|
Packit Service |
603f59 |
# if defined(HASPERSDC)
|
|
Packit Service |
603f59 |
if (!cp && dx != -1 && (dx = dcpath(1, 0)) >= 0)
|
|
Packit Service |
603f59 |
cp = DCpath[3];
|
|
Packit Service |
603f59 |
# endif /* defined(HASPERSDC) */
|
|
Packit Service |
603f59 |
if (cp)
|
|
Packit Service |
603f59 |
(void) fprintf(stderr,
|
|
Packit Service |
603f59 |
"%s%s is the default device cache file read path.\n",
|
|
Packit Service |
603f59 |
ttl ? ttl : "",
|
|
Packit Service |
603f59 |
cp
|
|
Packit Service |
603f59 |
);
|
|
Packit Service |
603f59 |
# endif /* defined(HASENVDC) || defined(HASPERSDC) || defined(HASSYSDC) */
|
|
Packit Service |
603f59 |
}
|
|
Packit Service |
603f59 |
|
|
Packit Service |
603f59 |
# if defined(WILLDROPGID)
|
|
Packit Service |
603f59 |
Setgid = saved_Setgid;
|
|
Packit Service |
603f59 |
# endif /* defined(WILLDROPGID) */
|
|
Packit Service |
603f59 |
|
|
Packit Service |
603f59 |
#endif /* defined(HASDCACHE) */
|
|
Packit Service |
603f59 |
|
|
Packit Service |
603f59 |
}
|
|
Packit Service |
603f59 |
|
|
Packit Service |
603f59 |
|
|
Packit Service |
603f59 |
/*
|
|
Packit Service |
603f59 |
* report_HASKERNIDCK() -- report HASKERNIDCK state
|
|
Packit Service |
603f59 |
*/
|
|
Packit Service |
603f59 |
|
|
Packit Service |
603f59 |
static void
|
|
Packit Service |
603f59 |
report_HASKERNIDCK(pfx, verb)
|
|
Packit Service |
603f59 |
char *pfx; /* prefix (NULL if none) */
|
|
Packit Service |
603f59 |
char *verb; /* verb (NULL if none) */
|
|
Packit Service |
603f59 |
{
|
|
Packit Service |
603f59 |
(void) fprintf(stderr, "%sernel ID check %s%s%s.\n",
|
|
Packit Service |
603f59 |
pfx ? pfx : "",
|
|
Packit Service |
603f59 |
verb ? verb : "",
|
|
Packit Service |
603f59 |
verb ? " " : "",
|
|
Packit Service |
603f59 |
|
|
Packit Service |
603f59 |
#if defined(HASKERNIDCK)
|
|
Packit Service |
603f59 |
"enabled"
|
|
Packit Service |
603f59 |
#else /* !defined(HASKERNIDCK) */
|
|
Packit Service |
603f59 |
"disabled"
|
|
Packit Service |
603f59 |
#endif /* defined(HASKERNIDCK) */
|
|
Packit Service |
603f59 |
|
|
Packit Service |
603f59 |
);
|
|
Packit Service |
603f59 |
}
|
|
Packit Service |
603f59 |
|
|
Packit Service |
603f59 |
|
|
Packit Service |
603f59 |
/*
|
|
Packit Service |
603f59 |
* report_SECURITY() -- report *SECURITY states
|
|
Packit Service |
603f59 |
*/
|
|
Packit Service |
603f59 |
|
|
Packit Service |
603f59 |
static void
|
|
Packit Service |
603f59 |
report_SECURITY(pfx, punct)
|
|
Packit Service |
603f59 |
char *pfx; /* prefix (NULL if none) */
|
|
Packit Service |
603f59 |
char *punct; /* short foem punctuation
|
|
Packit Service |
603f59 |
* (NULL if none) */
|
|
Packit Service |
603f59 |
{
|
|
Packit Service |
603f59 |
fprintf(stderr, "%s%s can list all files%s",
|
|
Packit Service |
603f59 |
pfx ? pfx : "",
|
|
Packit Service |
603f59 |
|
|
Packit Service |
603f59 |
#if defined(HASSECURITY)
|
|
Packit Service |
603f59 |
"Only root",
|
|
Packit Service |
603f59 |
# if defined(HASNOSOCKSECURITY)
|
|
Packit Service |
603f59 |
", but anyone can list socket files.\n"
|
|
Packit Service |
603f59 |
# else /* !defined(HASNOSOCKSECURITY) */
|
|
Packit Service |
603f59 |
punct ? punct : ""
|
|
Packit Service |
603f59 |
# endif /* defined(HASNOSOCKSECURITY) */
|
|
Packit Service |
603f59 |
#else /* !defined(HASSECURITY) */
|
|
Packit Service |
603f59 |
"Anyone",
|
|
Packit Service |
603f59 |
punct ? punct : ""
|
|
Packit Service |
603f59 |
#endif /* defined(HASSECURITY) */
|
|
Packit Service |
603f59 |
|
|
Packit Service |
603f59 |
);
|
|
Packit Service |
603f59 |
}
|
|
Packit Service |
603f59 |
|
|
Packit Service |
603f59 |
|
|
Packit Service |
603f59 |
/*
|
|
Packit Service |
603f59 |
* report_WARNDEVACCESS() -- report WEARNDEVACCESS state
|
|
Packit Service |
603f59 |
*/
|
|
Packit Service |
603f59 |
|
|
Packit Service |
603f59 |
static void
|
|
Packit Service |
603f59 |
report_WARNDEVACCESS(pfx, verb, punct)
|
|
Packit Service |
603f59 |
char *pfx; /* prefix (NULL if none) */
|
|
Packit Service |
603f59 |
char *verb; /* verb (NULL if none) */
|
|
Packit Service |
603f59 |
char *punct; /* punctuation */
|
|
Packit Service |
603f59 |
{
|
|
Packit Service |
603f59 |
(void) fprintf(stderr, "%s/dev warnings %s%s%s%s",
|
|
Packit Service |
603f59 |
pfx ? pfx : "",
|
|
Packit Service |
603f59 |
verb ? verb : "",
|
|
Packit Service |
603f59 |
verb ? " " : "",
|
|
Packit Service |
603f59 |
|
|
Packit Service |
603f59 |
#if defined(WARNDEVACCESS)
|
|
Packit Service |
603f59 |
"enabled",
|
|
Packit Service |
603f59 |
#else /* !defined(WARNDEVACCESS) */
|
|
Packit Service |
603f59 |
"disabled",
|
|
Packit Service |
603f59 |
#endif /* defined(WARNDEVACCESS) */
|
|
Packit Service |
603f59 |
|
|
Packit Service |
603f59 |
punct);
|
|
Packit Service |
603f59 |
}
|
|
Packit Service |
603f59 |
|
|
Packit Service |
603f59 |
|
|
Packit Service |
603f59 |
/*
|
|
Packit Service |
603f59 |
* usage() - display usage and exit
|
|
Packit Service |
603f59 |
*/
|
|
Packit Service |
603f59 |
|
|
Packit Service |
603f59 |
void
|
|
Packit Service |
603f59 |
usage(xv, fh, version)
|
|
Packit Service |
603f59 |
int xv; /* exit value */
|
|
Packit Service |
603f59 |
int fh; /* ``-F ?'' status */
|
|
Packit Service |
603f59 |
int version; /* ``-v'' status */
|
|
Packit Service |
603f59 |
{
|
|
Packit Service |
603f59 |
char buf[MAXPATHLEN+1], *cp, *cp1, *cp2;
|
|
Packit Service |
603f59 |
int col, i;
|
|
Packit Service |
603f59 |
|
|
Packit Service |
603f59 |
if (Fhelp || xv) {
|
|
Packit Service |
603f59 |
(void) fprintf(stderr, "%s %s\n latest revision: %s\n",
|
|
Packit Service |
603f59 |
Pn, LSOF_VERSION, LSOF_REPO_URL);
|
|
Packit Service |
603f59 |
(void) fprintf(stderr, " latest FAQ: %s\n", LSOF_FAQ_URL);
|
|
Packit Service |
603f59 |
(void) fprintf(stderr, " latest (non-formatted) man page: %s\n", LSOF_MAN_URL);
|
|
Packit Service |
603f59 |
(void) fprintf(stderr,
|
|
Packit Service |
603f59 |
" usage: [-?ab%sh%slnNoOP%s%stUvV%s]",
|
|
Packit Service |
603f59 |
|
|
Packit Service |
603f59 |
#if defined(HASNCACHE)
|
|
Packit Service |
603f59 |
"C",
|
|
Packit Service |
603f59 |
#else /* !defined(HASNCACHE) */
|
|
Packit Service |
603f59 |
"",
|
|
Packit Service |
603f59 |
#endif /* defined(HASNCACHE) */
|
|
Packit Service |
603f59 |
|
|
Packit Service |
603f59 |
#if defined(HASTASKS)
|
|
Packit Service |
603f59 |
"K",
|
|
Packit Service |
603f59 |
#else /* !defined(HASTASKS) */
|
|
Packit Service |
603f59 |
"",
|
|
Packit Service |
603f59 |
#endif /* defined(HASTASKS) */
|
|
Packit Service |
603f59 |
|
|
Packit Service |
603f59 |
#if defined(HASPPID)
|
|
Packit Service |
603f59 |
"R",
|
|
Packit Service |
603f59 |
#else /* !defined(HASPPID) */
|
|
Packit Service |
603f59 |
"",
|
|
Packit Service |
603f59 |
#endif /* defined(HASPPID) */
|
|
Packit Service |
603f59 |
|
|
Packit Service |
603f59 |
#if defined(HASTCPUDPSTATE)
|
|
Packit Service |
603f59 |
"",
|
|
Packit Service |
603f59 |
#else /* !defined(HASTCPUDPSTATE) */
|
|
Packit Service |
603f59 |
"s",
|
|
Packit Service |
603f59 |
#endif /* defined(HASTCPUDPSTATE) */
|
|
Packit Service |
603f59 |
|
|
Packit Service |
603f59 |
#if defined(HASXOPT)
|
|
Packit Service |
603f59 |
# if defined(HASXOPT_ROOT)
|
|
Packit Service |
603f59 |
(Myuid == 0) ? "X" : ""
|
|
Packit Service |
603f59 |
# else /* !defined(HASXOPT_ROOT) */
|
|
Packit Service |
603f59 |
"X"
|
|
Packit Service |
603f59 |
# endif /* defined(HASXOPT_ROOT) */
|
|
Packit Service |
603f59 |
#else /* !defined(HASXOPT) */
|
|
Packit Service |
603f59 |
""
|
|
Packit Service |
603f59 |
#endif /* defined(HASXOPT) */
|
|
Packit Service |
603f59 |
|
|
Packit Service |
603f59 |
);
|
|
Packit Service |
603f59 |
|
|
Packit Service |
603f59 |
#if defined(HAS_AFS) && defined(HASAOPT)
|
|
Packit Service |
603f59 |
(void) fprintf(stderr, " [-A A]");
|
|
Packit Service |
603f59 |
#endif /* defined(HAS_AFS) && defined(HASAOPT) */
|
|
Packit Service |
603f59 |
|
|
Packit Service |
603f59 |
(void) fprintf(stderr, " [+|-c c] [+|-d s] [+%sD D]%s",
|
|
Packit Service |
603f59 |
#if defined(HASDCACHE)
|
|
Packit Service |
603f59 |
"|-",
|
|
Packit Service |
603f59 |
#else /* !defined(HASDCACHE) */
|
|
Packit Service |
603f59 |
"",
|
|
Packit Service |
603f59 |
#endif /* defined(HASDCACHE) */
|
|
Packit Service |
603f59 |
|
|
Packit Service |
603f59 |
#if defined(HASEPTOPTS)
|
|
Packit Service |
603f59 |
" [+|-E]"
|
|
Packit Service |
603f59 |
#else /* !defined(HASEPTOPTS) */
|
|
Packit Service |
603f59 |
""
|
|
Packit Service |
603f59 |
#endif /* defined(HASEPTOPTS) */
|
|
Packit Service |
603f59 |
|
|
Packit Service |
603f59 |
);
|
|
Packit Service |
603f59 |
|
|
Packit Service |
603f59 |
(void) fprintf(stderr,
|
|
Packit Service |
603f59 |
" %s[+|-f%s%s%s%s%s%s]\n [-F [f]] [-g [s]] [-i [i]]",
|
|
Packit Service |
603f59 |
|
|
Packit Service |
603f59 |
#if defined(HASEOPT)
|
|
Packit Service |
603f59 |
"[+|-e s] ",
|
|
Packit Service |
603f59 |
#else /* !defined(HASEOPT) */
|
|
Packit Service |
603f59 |
"",
|
|
Packit Service |
603f59 |
#endif /* defined(HASEOPT) */
|
|
Packit Service |
603f59 |
|
|
Packit Service |
603f59 |
#if defined(HASFSTRUCT)
|
|
Packit Service |
603f59 |
"[",
|
|
Packit Service |
603f59 |
|
|
Packit Service |
603f59 |
# if defined(HASNOFSCOUNT)
|
|
Packit Service |
603f59 |
"",
|
|
Packit Service |
603f59 |
# else /* !defined(HASNOFSCOUNT) */
|
|
Packit Service |
603f59 |
"c",
|
|
Packit Service |
603f59 |
# endif /* defined(HASNOFSCOUNT) */
|
|
Packit Service |
603f59 |
|
|
Packit Service |
603f59 |
# if defined(HASNOFSADDR)
|
|
Packit Service |
603f59 |
"",
|
|
Packit Service |
603f59 |
# else /* !defined(HASNOFSADDR) */
|
|
Packit Service |
603f59 |
"f",
|
|
Packit Service |
603f59 |
# endif /* defined(HASNOFSADDR) */
|
|
Packit Service |
603f59 |
|
|
Packit Service |
603f59 |
# if defined(HASNOFSFLAGS)
|
|
Packit Service |
603f59 |
"",
|
|
Packit Service |
603f59 |
# else /* !defined(HASNOFSFLAGS) */
|
|
Packit Service |
603f59 |
"gG",
|
|
Packit Service |
603f59 |
# endif /* defined(HASNOFSFLAGS) */
|
|
Packit Service |
603f59 |
|
|
Packit Service |
603f59 |
# if defined(HASNOFSNADDR)
|
|
Packit Service |
603f59 |
"",
|
|
Packit Service |
603f59 |
# else /* !defined(HASNOFSNADDR) */
|
|
Packit Service |
603f59 |
"n",
|
|
Packit Service |
603f59 |
# endif /* defined(HASNOFSNADDR) */
|
|
Packit Service |
603f59 |
|
|
Packit Service |
603f59 |
"]"
|
|
Packit Service |
603f59 |
#else /* !defined(HASFSTRUCT) */
|
|
Packit Service |
603f59 |
"", "", "", "", "", ""
|
|
Packit Service |
603f59 |
#endif /* defined(HASFSTRUCT) */
|
|
Packit Service |
603f59 |
|
|
Packit Service |
603f59 |
);
|
|
Packit Service |
603f59 |
|
|
Packit Service |
603f59 |
#if defined(HASKOPT)
|
|
Packit Service |
603f59 |
(void) fprintf(stderr, " [-k k]");
|
|
Packit Service |
603f59 |
#endif /* defined(HASKOPT) */
|
|
Packit Service |
603f59 |
|
|
Packit Service |
603f59 |
(void) fprintf(stderr, " [+|-L [l]]");
|
|
Packit Service |
603f59 |
|
|
Packit Service |
603f59 |
#if defined(HASMOPT) || defined(HASMNTSUP)
|
|
Packit Service |
603f59 |
(void) fprintf(stderr,
|
|
Packit Service |
603f59 |
# if defined(HASMOPT)
|
|
Packit Service |
603f59 |
# if defined(HASMNTSUP)
|
|
Packit Service |
603f59 |
" [+|-m [m]]"
|
|
Packit Service |
603f59 |
# else /* !defined(HASMNTSUP) */
|
|
Packit Service |
603f59 |
" [-m m]"
|
|
Packit Service |
603f59 |
# endif /* defined(HASMNTSUP) */
|
|
Packit Service |
603f59 |
# else /* !defined(HASMOPT) */
|
|
Packit Service |
603f59 |
" [+m [m]]"
|
|
Packit Service |
603f59 |
# endif /* defined(HASMOPT) */
|
|
Packit Service |
603f59 |
);
|
|
Packit Service |
603f59 |
#endif /* defined(HASMOPT) || defined(HASMNTSUP) */
|
|
Packit Service |
603f59 |
|
|
Packit Service |
603f59 |
#if !defined(HASNORPC_H)
|
|
Packit Service |
603f59 |
(void) fprintf(stderr, " [+|-M]");
|
|
Packit Service |
603f59 |
#endif /* !defined(HASNORPC_H) */
|
|
Packit Service |
603f59 |
|
|
Packit Service |
603f59 |
(void) fprintf(stderr,
|
|
Packit Service |
603f59 |
" [-o [o]] [-p s]\n [+|-r [t]]%s [-S [t]] [-T [t]]",
|
|
Packit Service |
603f59 |
|
|
Packit Service |
603f59 |
#if defined(HASTCPUDPSTATE)
|
|
Packit Service |
603f59 |
" [-s [p:s]]"
|
|
Packit Service |
603f59 |
#else /* !defined(HASTCPUDPSTATE) */
|
|
Packit Service |
603f59 |
""
|
|
Packit Service |
603f59 |
#endif /* defined(HASTCPUDPSTATE) */
|
|
Packit Service |
603f59 |
|
|
Packit Service |
603f59 |
);
|
|
Packit Service |
603f59 |
(void) fprintf(stderr, " [-u s] [+|-w] [-x [fl]]");
|
|
Packit Service |
603f59 |
|
|
Packit Service |
603f59 |
#if defined(HASZONES)
|
|
Packit Service |
603f59 |
(void) fprintf(stderr, " [-z [z]]");
|
|
Packit Service |
603f59 |
#else /* !defined(HASZONES) */
|
|
Packit Service |
603f59 |
# if defined(HASSELINUX)
|
|
Packit Service |
603f59 |
if (CntxStatus)
|
|
Packit Service |
603f59 |
(void) fprintf(stderr, " [-Z [Z]]");
|
|
Packit Service |
603f59 |
# endif /* defined(HASSELINUX) */
|
|
Packit Service |
603f59 |
#endif /* defined(HASZONES) */
|
|
Packit Service |
603f59 |
|
|
Packit Service |
603f59 |
(void) fprintf(stderr, " [--] [names]\n");
|
|
Packit Service |
603f59 |
}
|
|
Packit Service |
603f59 |
if (xv && !Fhelp) {
|
|
Packit Service |
603f59 |
(void) fprintf(stderr,
|
|
Packit Service |
603f59 |
"Use the ``-h'' option to get more help information.\n");
|
|
Packit Service |
603f59 |
if (!fh)
|
|
Packit Service |
603f59 |
Exit(xv);
|
|
Packit Service |
603f59 |
}
|
|
Packit Service |
603f59 |
if (Fhelp) {
|
|
Packit Service |
603f59 |
(void) fprintf(stderr,
|
|
Packit Service |
603f59 |
"Defaults in parentheses; comma-separated set (s) items;");
|
|
Packit Service |
603f59 |
(void) fprintf(stderr, " dash-separated ranges.\n");
|
|
Packit Service |
603f59 |
col = print_in_col(1, "-?|-h list help");
|
|
Packit Service |
603f59 |
col = print_in_col(col, "-a AND selections (OR)");
|
|
Packit Service |
603f59 |
col = print_in_col(col, "-b avoid kernel blocks");
|
|
Packit Service |
603f59 |
col = print_in_col(col, "-c c cmd c ^c /c/[bix]");
|
|
Packit Service |
603f59 |
(void) snpf(buf, sizeof(buf), "+c w COMMAND width (%d)", CMDL);
|
|
Packit Service |
603f59 |
col = print_in_col(col, buf);
|
|
Packit Service |
603f59 |
|
|
Packit Service |
603f59 |
#if defined(HASNCACHE)
|
|
Packit Service |
603f59 |
col = print_in_col(col, "-C no kernel name cache");
|
|
Packit Service |
603f59 |
#endif /* defined(HASNCACHE) */
|
|
Packit Service |
603f59 |
|
|
Packit Service |
603f59 |
col = print_in_col(col, "+d s dir s files");
|
|
Packit Service |
603f59 |
col = print_in_col(col, "-d s select by FD set");
|
|
Packit Service |
603f59 |
col = print_in_col(col, "+D D dir D tree *SLOW?*");
|
|
Packit Service |
603f59 |
|
|
Packit Service |
603f59 |
#if defined(HASDCACHE)
|
|
Packit Service |
603f59 |
if (Setuidroot)
|
|
Packit Service |
603f59 |
cp = "?|i|r";
|
|
Packit Service |
603f59 |
|
|
Packit Service |
603f59 |
# if !defined(WILLDROPGID)
|
|
Packit Service |
603f59 |
else if (Myuid)
|
|
Packit Service |
603f59 |
cp = "?|i|r<path>";
|
|
Packit Service |
603f59 |
# endif /* !defined(WILLDROPGID) */
|
|
Packit Service |
603f59 |
|
|
Packit Service |
603f59 |
else
|
|
Packit Service |
603f59 |
cp = "?|i|b|r|u[path]";
|
|
Packit Service |
603f59 |
(void) snpf(buf, sizeof(buf), "-D D %s", cp);
|
|
Packit Service |
603f59 |
#else /* !defined(HASDCACHE) */
|
|
Packit Service |
603f59 |
buf[0] = '\0';
|
|
Packit Service |
603f59 |
#endif /* defined(HASDCACHE) */
|
|
Packit Service |
603f59 |
|
|
Packit Service |
603f59 |
col = print_in_col(col, buf);
|
|
Packit Service |
603f59 |
|
|
Packit Service |
603f59 |
#if defined(HASEOPT)
|
|
Packit Service |
603f59 |
col = print_in_col(col, "+|-e s exempt s *RISKY*");
|
|
Packit Service |
603f59 |
#endif /* defined(HASEOPT) */
|
|
Packit Service |
603f59 |
|
|
Packit Service |
603f59 |
(void) snpf(buf, sizeof(buf), "-i select IPv%s files",
|
|
Packit Service |
603f59 |
|
|
Packit Service |
603f59 |
#if defined(HASIPv6)
|
|
Packit Service |
603f59 |
"[46]"
|
|
Packit Service |
603f59 |
#else /* !defined(HASIPv6) */
|
|
Packit Service |
603f59 |
"4"
|
|
Packit Service |
603f59 |
#endif /* defined(HASIPv6) */
|
|
Packit Service |
603f59 |
|
|
Packit Service |
603f59 |
);
|
|
Packit Service |
603f59 |
col = print_in_col(col, buf);
|
|
Packit Service |
603f59 |
|
|
Packit Service |
603f59 |
#if defined(HASTASKS)
|
|
Packit Service |
603f59 |
/* DEBUG col = print_in_col(col, "-K list tasKs (threads)"); */
|
|
Packit Service |
603f59 |
col = print_in_col(col, "-K [i] list|(i)gn tasKs");
|
|
Packit Service |
603f59 |
#endif /* defined(HASTASKS) */
|
|
Packit Service |
603f59 |
|
|
Packit Service |
603f59 |
col = print_in_col(col, "-l list UID numbers");
|
|
Packit Service |
603f59 |
col = print_in_col(col, "-n no host names");
|
|
Packit Service |
603f59 |
col = print_in_col(col, "-N select NFS files");
|
|
Packit Service |
603f59 |
col = print_in_col(col, "-o list file offset");
|
|
Packit Service |
603f59 |
col = print_in_col(col, "-O no overhead *RISKY*");
|
|
Packit Service |
603f59 |
col = print_in_col(col, "-P no port names");
|
|
Packit Service |
603f59 |
|
|
Packit Service |
603f59 |
#if defined(HASPPID)
|
|
Packit Service |
603f59 |
col = print_in_col(col, "-R list paRent PID");
|
|
Packit Service |
603f59 |
#endif /* defined(HASPPID) */
|
|
Packit Service |
603f59 |
|
|
Packit Service |
603f59 |
col = print_in_col(col, "-s list file size");
|
|
Packit Service |
603f59 |
col = print_in_col(col, "-t terse listing");
|
|
Packit Service |
603f59 |
col = print_in_col(col, "-T disable TCP/TPI info");
|
|
Packit Service |
603f59 |
col = print_in_col(col, "-U select Unix socket");
|
|
Packit Service |
603f59 |
col = print_in_col(col, "-v list version info");
|
|
Packit Service |
603f59 |
col = print_in_col(col, "-V verbose search");
|
|
Packit Service |
603f59 |
(void) snpf(buf, sizeof(buf), "+|-w Warnings (%s)",
|
|
Packit Service |
603f59 |
|
|
Packit Service |
603f59 |
#if defined(WARNINGSTATE)
|
|
Packit Service |
603f59 |
"-");
|
|
Packit Service |
603f59 |
#else /* !defined(WARNINGSTATE) */
|
|
Packit Service |
603f59 |
"+");
|
|
Packit Service |
603f59 |
#endif /* defined(WARNINGSTATE) */
|
|
Packit Service |
603f59 |
|
|
Packit Service |
603f59 |
col = print_in_col(col, buf);
|
|
Packit Service |
603f59 |
|
|
Packit Service |
603f59 |
#if defined(HASXOPT)
|
|
Packit Service |
603f59 |
# if defined(HASXOPT_ROOT)
|
|
Packit Service |
603f59 |
if (Myuid == 0)
|
|
Packit Service |
603f59 |
(void) snpf(buf, sizeof(buf), "-X %s", HASXOPT);
|
|
Packit Service |
603f59 |
else
|
|
Packit Service |
603f59 |
buf[0] = '\0';
|
|
Packit Service |
603f59 |
# else /* !defined(HASXOPT_ROOT) */
|
|
Packit Service |
603f59 |
(void) snpf(buf, sizeof(buf), "-X %s", HASXOPT);
|
|
Packit Service |
603f59 |
# endif /* defined(HASXOPT_ROOT) */
|
|
Packit Service |
603f59 |
# else /* !defined(HASXOPT) */
|
|
Packit Service |
603f59 |
buf[0] = '\0';
|
|
Packit Service |
603f59 |
#endif /* defined(HASXOPT) */
|
|
Packit Service |
603f59 |
|
|
Packit Service |
603f59 |
col = print_in_col(col, buf);
|
|
Packit Service |
603f59 |
|
|
Packit Service |
603f59 |
#if defined(HASZONES)
|
|
Packit Service |
603f59 |
col = print_in_col(col, "-z z zone [z]");
|
|
Packit Service |
603f59 |
#endif /* defined(HASZONES) */
|
|
Packit Service |
603f59 |
|
|
Packit Service |
603f59 |
#if defined(HASSELINUX)
|
|
Packit Service |
603f59 |
col = print_in_col(col, "-Z Z context [Z]");
|
|
Packit Service |
603f59 |
#endif /* defined(HASSELINUX) */
|
|
Packit Service |
603f59 |
|
|
Packit Service |
603f59 |
col = print_in_col(col, "-- end option scan");
|
|
Packit Service |
603f59 |
if (col != 1)
|
|
Packit Service |
603f59 |
(void) fprintf(stderr, "\n");
|
|
Packit Service |
603f59 |
|
|
Packit Service |
603f59 |
#if defined(HASEPTOPTS)
|
|
Packit Service |
603f59 |
(void) fprintf(stderr, " %-36.36s %s\n",
|
|
Packit Service |
603f59 |
"-E display endpoint info",
|
|
Packit Service |
603f59 |
"+E display endpoint info and files"
|
|
Packit Service |
603f59 |
);
|
|
Packit Service |
603f59 |
#endif /* defined(HASEPTOPTS) */
|
|
Packit Service |
603f59 |
|
|
Packit Service |
603f59 |
(void) fprintf(stderr, " %-36.36s",
|
|
Packit Service |
603f59 |
"+f|-f +filesystem or -file names");
|
|
Packit Service |
603f59 |
|
|
Packit Service |
603f59 |
#if defined(HASFSTRUCT)
|
|
Packit Service |
603f59 |
(void) fprintf(stderr,
|
|
Packit Service |
603f59 |
" +|-f[%s%s%s%s]%s%s%s%s %s%s%s%s%s%s%s\n",
|
|
Packit Service |
603f59 |
|
|
Packit Service |
603f59 |
# if defined(HASNOFSCOUNT)
|
|
Packit Service |
603f59 |
"",
|
|
Packit Service |
603f59 |
# else /* !defined(HASNOFSCOUNT) */
|
|
Packit Service |
603f59 |
"c",
|
|
Packit Service |
603f59 |
# endif /* defined(HASNOFSCOUNT) */
|
|
Packit Service |
603f59 |
|
|
Packit Service |
603f59 |
# if defined(HASNOFSADDR)
|
|
Packit Service |
603f59 |
"",
|
|
Packit Service |
603f59 |
# else /* !defined(HASNOFSADDR) */
|
|
Packit Service |
603f59 |
"f",
|
|
Packit Service |
603f59 |
# endif /* defined(HASNOFSADDR) */
|
|
Packit Service |
603f59 |
|
|
Packit Service |
603f59 |
# if defined(HASNOFSFLAGS)
|
|
Packit Service |
603f59 |
"",
|
|
Packit Service |
603f59 |
# else /* !defined(HASNOFSFLAGS) */
|
|
Packit Service |
603f59 |
"gG",
|
|
Packit Service |
603f59 |
# endif /* defined(HASNOFSFLAGS) */
|
|
Packit Service |
603f59 |
|
|
Packit Service |
603f59 |
# if defined(HASNOFSNADDR)
|
|
Packit Service |
603f59 |
"",
|
|
Packit Service |
603f59 |
# else /* !defined(HASNOFSNADDR) */
|
|
Packit Service |
603f59 |
"n",
|
|
Packit Service |
603f59 |
# endif /* defined(HASNOFSNADDR) */
|
|
Packit Service |
603f59 |
|
|
Packit Service |
603f59 |
# if defined(HASNOFSCOUNT)
|
|
Packit Service |
603f59 |
"",
|
|
Packit Service |
603f59 |
# else /* !defined(HASNOFSCOUNT) */
|
|
Packit Service |
603f59 |
" Ct",
|
|
Packit Service |
603f59 |
# endif /* defined(HASNOFSCOUNT) */
|
|
Packit Service |
603f59 |
|
|
Packit Service |
603f59 |
# if defined(HASNOFSADDR)
|
|
Packit Service |
603f59 |
"",
|
|
Packit Service |
603f59 |
# else /* !defined(HASNOFSADDR) */
|
|
Packit Service |
603f59 |
" Fstr",
|
|
Packit Service |
603f59 |
# endif /* defined(HASNOFSADDR) */
|
|
Packit Service |
603f59 |
|
|
Packit Service |
603f59 |
# if defined(HASNOFSFLAGS)
|
|
Packit Service |
603f59 |
"",
|
|
Packit Service |
603f59 |
# else /* !defined(HASNOFSFLAGS) */
|
|
Packit Service |
603f59 |
" flaGs",
|
|
Packit Service |
603f59 |
# endif /* defined(HASNOFSFLAGS) */
|
|
Packit Service |
603f59 |
|
|
Packit Service |
603f59 |
# if defined(HASNOFSNADDR)
|
|
Packit Service |
603f59 |
"",
|
|
Packit Service |
603f59 |
# else /* !defined(HASNOFSNADDR) */
|
|
Packit Service |
603f59 |
" Node",
|
|
Packit Service |
603f59 |
# endif /* defined(HASNOFSNADDR) */
|
|
Packit Service |
603f59 |
|
|
Packit Service |
603f59 |
Fsv ? "(" : "",
|
|
Packit Service |
603f59 |
(Fsv & FSV_CT) ? "C" : "",
|
|
Packit Service |
603f59 |
(Fsv & FSV_FA) ? "F" : "",
|
|
Packit Service |
603f59 |
((Fsv & FSV_FG) && FsvFlagX) ? "g" : "",
|
|
Packit Service |
603f59 |
((Fsv & FSV_FG) && !FsvFlagX) ? "G" : "",
|
|
Packit Service |
603f59 |
(Fsv & FSV_NI) ? "N" : "",
|
|
Packit Service |
603f59 |
Fsv ? ")" : "");
|
|
Packit Service |
603f59 |
#else /* !defined(HASFSTRUCT) */
|
|
Packit Service |
603f59 |
putc('\n', stderr);
|
|
Packit Service |
603f59 |
#endif /* defined(HASFSTRUCT) */
|
|
Packit Service |
603f59 |
|
|
Packit Service |
603f59 |
(void) fprintf(stderr, " %-36.36s",
|
|
Packit Service |
603f59 |
"-F [f] select fields; -F? for help");
|
|
Packit Service |
603f59 |
|
|
Packit Service |
603f59 |
#if defined(HASKOPT)
|
|
Packit Service |
603f59 |
(void) fprintf(stderr,
|
|
Packit Service |
603f59 |
" -k k kernel symbols (%s)\n",
|
|
Packit Service |
603f59 |
Nmlst ? Nmlst
|
|
Packit Service |
603f59 |
# if defined(N_UNIX)
|
|
Packit Service |
603f59 |
: N_UNIX
|
|
Packit Service |
603f59 |
# else /* !defined(N_UNIX) */
|
|
Packit Service |
603f59 |
: (Nmlst = get_nlist_path(1)) ? Nmlst
|
|
Packit Service |
603f59 |
: "none found"
|
|
Packit Service |
603f59 |
# endif /* defined(N_UNIX) */
|
|
Packit Service |
603f59 |
|
|
Packit Service |
603f59 |
);
|
|
Packit Service |
603f59 |
#else /* !defined(HASKOPT) */
|
|
Packit Service |
603f59 |
putc('\n', stderr);
|
|
Packit Service |
603f59 |
#endif /* defined(HASKOPT) */
|
|
Packit Service |
603f59 |
|
|
Packit Service |
603f59 |
(void) fprintf(stderr,
|
|
Packit Service |
603f59 |
" +|-L [l] list (+) suppress (-) link counts < l (0 = all; default = 0)\n");
|
|
Packit Service |
603f59 |
|
|
Packit Service |
603f59 |
#if defined(HASMOPT) || defined(HASMNTSUP)
|
|
Packit Service |
603f59 |
# if defined(HASMOPT)
|
|
Packit Service |
603f59 |
(void) snpf(buf, sizeof(buf), "-m m kernel memory (%s)", KMEM);
|
|
Packit Service |
603f59 |
# else /* !defined(HASMOPT) */
|
|
Packit Service |
603f59 |
buf[0] = '\0';
|
|
Packit Service |
603f59 |
# endif /* defined(HASMOPT) */
|
|
Packit Service |
603f59 |
|
|
Packit Service |
603f59 |
(void) fprintf(stderr, " %-36.36s", buf);
|
|
Packit Service |
603f59 |
|
|
Packit Service |
603f59 |
# if defined(HASMNTSUP)
|
|
Packit Service |
603f59 |
(void) fprintf(stderr, " +m [m] use|create mount supplement\n");
|
|
Packit Service |
603f59 |
# else /* !defined(HASMNTSUP) */
|
|
Packit Service |
603f59 |
(void) fprintf(stderr, "\n");
|
|
Packit Service |
603f59 |
# endif /* defined(HASMNTSUP) */
|
|
Packit Service |
603f59 |
#endif /* defined(HASMOPT) || defined(HASMNTSUP) */
|
|
Packit Service |
603f59 |
|
|
Packit Service |
603f59 |
#if !defined(HASNORPC_H)
|
|
Packit Service |
603f59 |
(void) snpf(buf, sizeof(buf), "+|-M portMap registration (%s)",
|
|
Packit Service |
603f59 |
|
|
Packit Service |
603f59 |
# if defined(HASPMAPENABLED)
|
|
Packit Service |
603f59 |
"+"
|
|
Packit Service |
603f59 |
# else /* !defined(HASPMAPENABLED) */
|
|
Packit Service |
603f59 |
"-"
|
|
Packit Service |
603f59 |
# endif /* defined(HASPMAPENABLED) */
|
|
Packit Service |
603f59 |
|
|
Packit Service |
603f59 |
);
|
|
Packit Service |
603f59 |
#else /* defined(HASNORPC_H) */
|
|
Packit Service |
603f59 |
buf[0] = '\0';
|
|
Packit Service |
603f59 |
#endif /* !defined(HASNORPC_H) */
|
|
Packit Service |
603f59 |
|
|
Packit Service |
603f59 |
(void) fprintf(stderr, " %-36.36s", buf);
|
|
Packit Service |
603f59 |
(void) snpf(buf, sizeof(buf), "-o o o 0t offset digits (%d)",
|
|
Packit Service |
603f59 |
OFFDECDIG);
|
|
Packit Service |
603f59 |
(void) fprintf(stderr, " %s\n", buf);
|
|
Packit Service |
603f59 |
(void) fprintf(stderr, " %-36.36s",
|
|
Packit Service |
603f59 |
"-p s exclude(^)|select PIDs");
|
|
Packit Service |
603f59 |
(void) fprintf(stderr, " -S [t] t second stat timeout (%d)\n",
|
|
Packit Service |
603f59 |
TMLIMIT);
|
|
Packit Service |
603f59 |
(void) snpf(buf, sizeof(buf),
|
|
Packit Service |
603f59 |
"-T %s%ss%s TCP/TPI %s%sSt%s (s) info",
|
|
Packit Service |
603f59 |
|
|
Packit Service |
603f59 |
#if defined(HASSOOPT) || defined(HASSOSTATE) || defined(HASTCPOPT)
|
|
Packit Service |
603f59 |
"f",
|
|
Packit Service |
603f59 |
#else /* !defined(HASSOOPT) && !defined(HASSOSTATE) && !defined(HASTCPOPT)*/
|
|
Packit Service |
603f59 |
"",
|
|
Packit Service |
603f59 |
#endif /* defined(HASSOOPT) || defined(HASSOSTATE) || defined(HASTCPOPT)*/
|
|
Packit Service |
603f59 |
|
|
Packit Service |
603f59 |
#if defined(HASTCPTPIQ)
|
|
Packit Service |
603f59 |
"q",
|
|
Packit Service |
603f59 |
#else /* !defined(HASTCPTPIQ) */
|
|
Packit Service |
603f59 |
" ",
|
|
Packit Service |
603f59 |
#endif /* defined(HASTCPTPIQ) */
|
|
Packit Service |
603f59 |
|
|
Packit Service |
603f59 |
#if defined(HASTCPTPIW)
|
|
Packit Service |
603f59 |
"w",
|
|
Packit Service |
603f59 |
#else /* !defined(HASTCPTPIW) */
|
|
Packit Service |
603f59 |
"",
|
|
Packit Service |
603f59 |
#endif /* defined(HASTCPTPIW) */
|
|
Packit Service |
603f59 |
|
|
Packit Service |
603f59 |
#if defined(HASSOOPT) || defined(HASSOSTATE) || defined(HASTCPOPT)
|
|
Packit Service |
603f59 |
"Fl,",
|
|
Packit Service |
603f59 |
#else /* !defined(HASSOOPT) && !defined(HASSOSTATE) && !defined(HASTCPOPT)*/
|
|
Packit Service |
603f59 |
"",
|
|
Packit Service |
603f59 |
#endif /* defined(HASSOOPT) || defined(HASSOSTATE) || defined(HASTCPOPT)*/
|
|
Packit Service |
603f59 |
|
|
Packit Service |
603f59 |
#if defined(HASTCPTPIQ)
|
|
Packit Service |
603f59 |
"Q,",
|
|
Packit Service |
603f59 |
#else /* !defined(HASTCPTPIQ) */
|
|
Packit Service |
603f59 |
"",
|
|
Packit Service |
603f59 |
#endif /* defined(HASTCPTPIQ) */
|
|
Packit Service |
603f59 |
|
|
Packit Service |
603f59 |
#if defined(HASTCPTPIW)
|
|
Packit Service |
603f59 |
",Win"
|
|
Packit Service |
603f59 |
#else /* !defined(HASTCPTPIW) */
|
|
Packit Service |
603f59 |
""
|
|
Packit Service |
603f59 |
#endif /* defined(HASTCPTPIW) */
|
|
Packit Service |
603f59 |
|
|
Packit Service |
603f59 |
);
|
|
Packit Service |
603f59 |
(void) fprintf(stderr, " %s\n", buf);
|
|
Packit Service |
603f59 |
|
|
Packit Service |
603f59 |
#if defined(HAS_AFS) && defined(HASAOPT)
|
|
Packit Service |
603f59 |
(void) fprintf(stderr,
|
|
Packit Service |
603f59 |
" -A A AFS name list file (%s)\n", AFSAPATHDEF);
|
|
Packit Service |
603f59 |
#endif /* defined(HAS_AFS) && defined(HASAOPT) */
|
|
Packit Service |
603f59 |
|
|
Packit Service |
603f59 |
(void) fprintf(stderr,
|
|
Packit Service |
603f59 |
" -g [s] exclude(^)|select and print process group IDs\n");
|
|
Packit Service |
603f59 |
(void) fprintf(stderr, " -i i select by IPv%s address:",
|
|
Packit Service |
603f59 |
|
|
Packit Service |
603f59 |
#if defined(HASIPv6)
|
|
Packit Service |
603f59 |
"[46]"
|
|
Packit Service |
603f59 |
#else /* !defined(HASIPv6) */
|
|
Packit Service |
603f59 |
"4"
|
|
Packit Service |
603f59 |
#endif /* defined(HASIPv6) */
|
|
Packit Service |
603f59 |
|
|
Packit Service |
603f59 |
);
|
|
Packit Service |
603f59 |
(void) fprintf(stderr,
|
|
Packit Service |
603f59 |
" [%s][proto][@host|addr][:svc_list|port_list]\n",
|
|
Packit Service |
603f59 |
|
|
Packit Service |
603f59 |
#if defined(HASIPv6)
|
|
Packit Service |
603f59 |
"46"
|
|
Packit Service |
603f59 |
#else /* !defined(HASIPv6) */
|
|
Packit Service |
603f59 |
"4"
|
|
Packit Service |
603f59 |
#endif /* defined(HASIPv6) */
|
|
Packit Service |
603f59 |
|
|
Packit Service |
603f59 |
);
|
|
Packit Service |
603f59 |
|
|
Packit Service |
603f59 |
(void) fprintf(stderr,
|
|
Packit Service |
603f59 |
" +|-r [%s] repeat every t seconds (%d); %s",
|
|
Packit Service |
603f59 |
|
|
Packit Service |
603f59 |
#if defined(HAS_STRFTIME)
|
|
Packit Service |
603f59 |
"t[m<fmt>]",
|
|
Packit Service |
603f59 |
#else /* !defined(has_STRFTIME) */
|
|
Packit Service |
603f59 |
"t",
|
|
Packit Service |
603f59 |
#endif /* defined(HAS_STRFTIME) */
|
|
Packit Service |
603f59 |
|
|
Packit Service |
603f59 |
RPTTM,
|
|
Packit Service |
603f59 |
" + until no files, - forever.\n");
|
|
Packit Service |
603f59 |
|
|
Packit Service |
603f59 |
#if defined(HAS_STRFTIME)
|
|
Packit Service |
603f59 |
(void) fprintf(stderr,
|
|
Packit Service |
603f59 |
" An optional suffix to t is m<fmt>; m must separate %s",
|
|
Packit Service |
603f59 |
"t from <fmt> and\n");
|
|
Packit Service |
603f59 |
(void) fprintf(stderr, " <fmt> is an strftime(3) format %s",
|
|
Packit Service |
603f59 |
"for the marker line.\n");
|
|
Packit Service |
603f59 |
#endif /* defined(HAS_STRFTIME) */
|
|
Packit Service |
603f59 |
|
|
Packit Service |
603f59 |
#if defined(HASTCPUDPSTATE)
|
|
Packit Service |
603f59 |
(void) fprintf(stderr,
|
|
Packit Service |
603f59 |
" -s p:s exclude(^)|select protocol (p = TCP|UDP) states");
|
|
Packit Service |
603f59 |
(void) fprintf(stderr, " by name(s).\n");
|
|
Packit Service |
603f59 |
#endif /* defined(HASTCPUDPSTATE) */
|
|
Packit Service |
603f59 |
|
|
Packit Service |
603f59 |
(void) fprintf(stderr,
|
|
Packit Service |
603f59 |
" -u s exclude(^)|select login|UID set s\n");
|
|
Packit Service |
603f59 |
(void) fprintf(stderr,
|
|
Packit Service |
603f59 |
" -x [fl] cross over +d|+D File systems or symbolic Links\n");
|
|
Packit Service |
603f59 |
(void) fprintf(stderr,
|
|
Packit Service |
603f59 |
" names select named files or files on named file systems\n");
|
|
Packit Service |
603f59 |
(void) report_SECURITY(NULL, "; ");
|
|
Packit Service |
603f59 |
(void) report_WARNDEVACCESS(NULL, NULL, ";");
|
|
Packit Service |
603f59 |
(void) report_HASKERNIDCK(" k", NULL);
|
|
Packit Service |
603f59 |
(void) report_HASDCACHE(0, NULL, NULL);
|
|
Packit Service |
603f59 |
|
|
Packit Service |
603f59 |
#if defined(DIALECT_WARNING)
|
|
Packit Service |
603f59 |
(void) fprintf(stderr, "WARNING: %s\n", DIALECT_WARNING);
|
|
Packit Service |
603f59 |
#endif /* defined(DIALECT_WARNING) */
|
|
Packit Service |
603f59 |
|
|
Packit Service |
603f59 |
}
|
|
Packit Service |
603f59 |
if (fh) {
|
|
Packit Service |
603f59 |
(void) fprintf(stderr, "%s:\tID field description\n", Pn);
|
|
Packit Service |
603f59 |
for (i = 0; FieldSel[i].nm; i++) {
|
|
Packit Service |
603f59 |
|
|
Packit Service |
603f59 |
#if !defined(HASPPID)
|
|
Packit Service |
603f59 |
if (FieldSel[i].id == LSOF_FID_PPID)
|
|
Packit Service |
603f59 |
continue;
|
|
Packit Service |
603f59 |
#endif /* !defined(HASPPID) */
|
|
Packit Service |
603f59 |
|
|
Packit Service |
603f59 |
#if !defined(HASFSTRUCT)
|
|
Packit Service |
603f59 |
if (FieldSel[i].id == LSOF_FID_FA
|
|
Packit Service |
603f59 |
|| FieldSel[i].id == LSOF_FID_CT
|
|
Packit Service |
603f59 |
|| FieldSel[i].id == LSOF_FID_FG
|
|
Packit Service |
603f59 |
|| FieldSel[i].id == LSOF_FID_NI)
|
|
Packit Service |
603f59 |
continue;
|
|
Packit Service |
603f59 |
#else /* defined(HASFSTRUCT) */
|
|
Packit Service |
603f59 |
# if defined(HASNOFSADDR)
|
|
Packit Service |
603f59 |
if (FieldSel[i].id == LSOF_FID_FA)
|
|
Packit Service |
603f59 |
continue;
|
|
Packit Service |
603f59 |
# endif /* defined(HASNOFSADDR) */
|
|
Packit Service |
603f59 |
|
|
Packit Service |
603f59 |
# if defined(HASNOFSCOUNT)
|
|
Packit Service |
603f59 |
if (FieldSel[i].id == LSOF_FID_CT)
|
|
Packit Service |
603f59 |
continue;
|
|
Packit Service |
603f59 |
# endif /* !defined(HASNOFSCOUNT) */
|
|
Packit Service |
603f59 |
|
|
Packit Service |
603f59 |
# if defined(HASNOFSFLAGS)
|
|
Packit Service |
603f59 |
if (FieldSel[i].id == LSOF_FID_FG)
|
|
Packit Service |
603f59 |
continue;
|
|
Packit Service |
603f59 |
# endif /* defined(HASNOFSFLAGS) */
|
|
Packit Service |
603f59 |
|
|
Packit Service |
603f59 |
# if defined(HASNOFSNADDR)
|
|
Packit Service |
603f59 |
if (FieldSel[i].id == LSOF_FID_NI)
|
|
Packit Service |
603f59 |
continue;
|
|
Packit Service |
603f59 |
# endif /* defined(HASNOFSNADDR) */
|
|
Packit Service |
603f59 |
#endif /* !defined(HASFSTRUCT) */
|
|
Packit Service |
603f59 |
|
|
Packit Service |
603f59 |
#if !defined(HASZONES)
|
|
Packit Service |
603f59 |
if (FieldSel[i].id == LSOF_FID_ZONE)
|
|
Packit Service |
603f59 |
continue;
|
|
Packit Service |
603f59 |
#endif /* !defined(HASZONES) */
|
|
Packit Service |
603f59 |
|
|
Packit Service |
603f59 |
#if defined(HASSELINUX)
|
|
Packit Service |
603f59 |
if ((FieldSel[i].id == LSOF_FID_CNTX) && !CntxStatus)
|
|
Packit Service |
603f59 |
continue;
|
|
Packit Service |
603f59 |
#else /* !defined(HASSELINUX) */
|
|
Packit Service |
603f59 |
if (FieldSel[i].id == LSOF_FID_CNTX)
|
|
Packit Service |
603f59 |
continue;
|
|
Packit Service |
603f59 |
#endif /* !defined(HASSELINUX) */
|
|
Packit Service |
603f59 |
|
|
Packit Service |
603f59 |
(void) fprintf(stderr, "\t %c %s\n",
|
|
Packit Service |
603f59 |
FieldSel[i].id, FieldSel[i].nm);
|
|
Packit Service |
603f59 |
}
|
|
Packit Service |
603f59 |
}
|
|
Packit Service |
603f59 |
|
|
Packit Service |
603f59 |
#if defined(HASDCACHE)
|
|
Packit Service |
603f59 |
if (DChelp)
|
|
Packit Service |
603f59 |
report_HASDCACHE(1, NULL, " ");
|
|
Packit Service |
603f59 |
#endif /* defined(HASDCACHE) */
|
|
Packit Service |
603f59 |
|
|
Packit Service |
603f59 |
if (version) {
|
|
Packit Service |
603f59 |
|
|
Packit Service |
603f59 |
/*
|
|
Packit Service |
603f59 |
* Display version information in reponse to ``-v''.
|
|
Packit Service |
603f59 |
*/
|
|
Packit Service |
603f59 |
(void) fprintf(stderr, "%s version information:\n", Pn);
|
|
Packit Service |
603f59 |
(void) fprintf(stderr, " revision: %s\n", LSOF_VERSION);
|
|
Packit Service |
603f59 |
(void) fprintf(stderr, " latest revision: %s\n", LSOF_REPO_URL);
|
|
Packit Service |
603f59 |
(void) fprintf(stderr, " latest FAQ: %s\n",
|
|
Packit Service |
603f59 |
LSOF_FAQ_URL);
|
|
Packit Service |
603f59 |
(void) fprintf(stderr, " latest (non-formatted) man page: %s\n",
|
|
Packit Service |
603f59 |
LSOF_MAN_URL);
|
|
Packit Service |
603f59 |
|
|
Packit Service |
603f59 |
#if defined(LSOF_CINFO)
|
|
Packit Service |
603f59 |
if ((cp = isnullstr(LSOF_CINFO)))
|
|
Packit Service |
603f59 |
(void) fprintf(stderr, " configuration info: %s\n", cp);
|
|
Packit Service |
603f59 |
#endif /* defined(LSOF_CINFO) */
|
|
Packit Service |
603f59 |
|
|
Packit Service |
603f59 |
if ((cp = isnullstr(LSOF_CCDATE)))
|
|
Packit Service |
603f59 |
(void) fprintf(stderr, " constructed: %s\n", cp);
|
|
Packit Service |
603f59 |
cp = isnullstr(LSOF_HOST);
|
|
Packit Service |
603f59 |
if (!(cp1 = isnullstr(LSOF_LOGNAME)))
|
|
Packit Service |
603f59 |
cp1 = isnullstr(LSOF_USER);
|
|
Packit Service |
603f59 |
if (cp || cp1) {
|
|
Packit Service |
603f59 |
if (cp && cp1)
|
|
Packit Service |
603f59 |
cp2 = "by and on";
|
|
Packit Service |
603f59 |
else if (cp)
|
|
Packit Service |
603f59 |
cp2 = "on";
|
|
Packit Service |
603f59 |
else
|
|
Packit Service |
603f59 |
cp2 = "by";
|
|
Packit Service |
603f59 |
(void) fprintf(stderr, " constructed %s: %s%s%s\n",
|
|
Packit Service |
603f59 |
cp2,
|
|
Packit Service |
603f59 |
cp1 ? cp1 : "",
|
|
Packit Service |
603f59 |
(cp && cp1) ? "@" : "",
|
|
Packit Service |
603f59 |
cp ? cp : ""
|
|
Packit Service |
603f59 |
);
|
|
Packit Service |
603f59 |
}
|
|
Packit Service |
603f59 |
|
|
Packit Service |
603f59 |
#if defined(LSOF_BLDCMT)
|
|
Packit Service |
603f59 |
if ((cp = isnullstr(LSOF_BLDCMT)))
|
|
Packit Service |
603f59 |
(void) fprintf(stderr, " builder's comment: %s\n", cp);
|
|
Packit Service |
603f59 |
#endif /* defined(LSOF_BLDCMT) */
|
|
Packit Service |
603f59 |
|
|
Packit Service |
603f59 |
if ((cp = isnullstr(LSOF_CC)))
|
|
Packit Service |
603f59 |
(void) fprintf(stderr, " compiler: %s\n", cp);
|
|
Packit Service |
603f59 |
if ((cp = isnullstr(LSOF_CCV)))
|
|
Packit Service |
603f59 |
(void) fprintf(stderr, " compiler version: %s\n", cp);
|
|
Packit Service |
603f59 |
if ((cp = isnullstr(LSOF_CCFLAGS)))
|
|
Packit Service |
603f59 |
(void) fprintf(stderr, " compiler flags: %s\n", cp);
|
|
Packit Service |
603f59 |
if ((cp = isnullstr(LSOF_LDFLAGS)))
|
|
Packit Service |
603f59 |
(void) fprintf(stderr, " loader flags: %s\n", cp);
|
|
Packit Service |
603f59 |
if ((cp = isnullstr(LSOF_SYSINFO)))
|
|
Packit Service |
603f59 |
(void) fprintf(stderr, " system info: %s\n", cp);
|
|
Packit Service |
603f59 |
(void) report_SECURITY(" ", ".\n");
|
|
Packit Service |
603f59 |
(void) report_WARNDEVACCESS(" ", "are", ".\n");
|
|
Packit Service |
603f59 |
(void) report_HASKERNIDCK(" K", "is");
|
|
Packit Service |
603f59 |
|
|
Packit Service |
603f59 |
#if defined(DIALECT_WARNING)
|
|
Packit Service |
603f59 |
(void) fprintf(stderr, " WARNING: %s\n", DIALECT_WARNING);
|
|
Packit Service |
603f59 |
#endif /* defined(DIALECT_WARNING) */
|
|
Packit Service |
603f59 |
|
|
Packit Service |
603f59 |
(void) report_HASDCACHE(1, " ", "\t");
|
|
Packit Service |
603f59 |
}
|
|
Packit Service |
603f59 |
Exit(xv);
|
|
Packit Service |
603f59 |
}
|