*
* Licensed under GPLv2, see file LICENSE in this source tree.
*/
+//config:config FUSER
+//config: bool "fuser (7 kb)"
+//config: default y
+//config: help
+//config: fuser lists all PIDs (Process IDs) that currently have a given
+//config: file open. fuser can also list all PIDs that have a given network
+//config: (TCP or UDP) port open.
+
+//applet:IF_FUSER(APPLET(fuser, BB_DIR_USR_BIN, BB_SUID_DROP))
+
+//kbuild:lib-$(CONFIG_FUSER) += fuser.o
//usage:#define fuser_trivial_usage
//usage: "[OPTIONS] FILE or PORT/PROTO"
//usage:#define fuser_full_usage "\n\n"
//usage: "Find processes which use FILEs or PORTs\n"
-//usage: "\nOptions:"
//usage: "\n -m Find processes which use same fs as FILEs"
//usage: "\n -4,-6 Search only IPv4/IPv6 space"
//usage: "\n -s Don't display PIDs"
//usage: "\n -SIGNAL Signal to send (default: KILL)"
#include "libbb.h"
+#include "common_bufsiz.h"
#define MAX_LINE 255
smallint kill_failed;
int killsig;
} FIX_ALIASING;
-#define G (*(struct globals*)&bb_common_bufsiz1)
+#define G (*(struct globals*)bb_common_bufsiz1)
#define INIT_G() do { \
+ setup_common_bufsiz(); \
G.mypid = getpid(); \
G.killsig = SIGKILL; \
} while (0)
break;
}
- opt_complementary = "-1"; /* at least one param */
- getopt32(argv, OPTION_STRING);
+ getopt32(argv, "^" OPTION_STRING "\0" "-1"/*at least one arg*/);
argv += optind;
pp = argv;