unplugged-system/external/toybox/toys/other/swapoff.c

42 lines
867 B
C

/* swapoff.c - Disable region for swapping
*
* Copyright 2012 Elie De Brauwer <eliedebrauwer@gmail.com>
USE_SWAPOFF(NEWTOY(swapoff, "<1>1av", TOYFLAG_SBIN|TOYFLAG_NEEDROOT))
config SWAPOFF
bool "swapoff"
default y
help
usage: swapoff FILE
Disable swapping on a device or file.
*/
#define FOR_swapoff
#include "toys.h"
static void xswapoff(char *str)
{
if (FLAG(v)) printf("swapoff %s", str);
if (swapoff(str)) perror_msg("failed to remove swaparea");
}
void swapoff_main(void)
{
char *ss, *line, **args;
FILE *fp;
if (FLAG(a) && (fp = fopen("/proc/swaps", "r"))) {
while ((line = xgetline(fp))) {
if (*line != '/' || !(ss = strchr(line, ' '))) continue;
*ss = 0;
octal_deslash(line);
xswapoff(line);
free(line);
}
fclose(fp);
}
for (args = toys.optargs; *args; args++) xswapoff(*args);
}