umount add
This commit is contained in:
parent
ea17f21ebf
commit
f9050b632e
1
TODO
1
TODO
|
@ -22,7 +22,6 @@ tar
|
||||||
Other:
|
Other:
|
||||||
*mount
|
*mount
|
||||||
ps
|
ps
|
||||||
umount
|
|
||||||
sysctl
|
sysctl
|
||||||
ping
|
ping
|
||||||
ncat
|
ncat
|
||||||
|
|
3
build.sh
3
build.sh
|
@ -12,7 +12,7 @@ if [ -z $CC ]; then
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [ -z $projects ]; then
|
if [ -z $projects ]; then
|
||||||
projects="console-tools coreutils sysutils sysutils-linux findutils networking miscutils shell loginutils procps"
|
projects="console-tools coreutils sysutils-linux findutils networking miscutils shell loginutils procps"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
#Compile
|
#Compile
|
||||||
|
@ -25,6 +25,7 @@ for project in $projects; do
|
||||||
for i in $p; do
|
for i in $p; do
|
||||||
cd $PROJECT_DIR/$i
|
cd $PROJECT_DIR/$i
|
||||||
echo " * Compile" $i
|
echo " * Compile" $i
|
||||||
|
chmod -v +x build.sh
|
||||||
env CC=$CC CFLAGS="$CFLAGS -I$PROJECT_DIR -I$PROJECT_DIR/include/libmu -lm" OUTPUT="-o $PROJECT_DIR"/bin/$(basename $i) ./build.sh
|
env CC=$CC CFLAGS="$CFLAGS -I$PROJECT_DIR -I$PROJECT_DIR/include/libmu -lm" OUTPUT="-o $PROJECT_DIR"/bin/$(basename $i) ./build.sh
|
||||||
cd $PROJECT_DIR
|
cd $PROJECT_DIR
|
||||||
done
|
done
|
||||||
|
|
|
@ -9,13 +9,6 @@ typedef struct {
|
||||||
unsigned int val;
|
unsigned int val;
|
||||||
} MU_MOUNT_OPTS;
|
} MU_MOUNT_OPTS;
|
||||||
|
|
||||||
#if defined(__BSD__)
|
|
||||||
#define MS_RDONLY MNT_RDONLY
|
|
||||||
#define MS_REMOUNT 0
|
|
||||||
#define MS_SYNCHRONOUS MNT_SYNCHRONOUS
|
|
||||||
#define MS_NODEV MNT_NODEV
|
|
||||||
#endif
|
|
||||||
|
|
||||||
MU_MOUNT_OPTS mu_options[] = {
|
MU_MOUNT_OPTS mu_options[] = {
|
||||||
{"defaults", NULL, NULL, 0},
|
{"defaults", NULL, NULL, 0},
|
||||||
{"ro", "rw", "Read only / Read and write", MS_RDONLY},
|
{"ro", "rw", "Read only / Read and write", MS_RDONLY},
|
||||||
|
|
|
@ -19,7 +19,7 @@ int compare(FILE *fp1, FILE *fp2) {
|
||||||
|
|
||||||
if (ch1 != ch2) {
|
if (ch1 != ch2) {
|
||||||
if (!s_flag)
|
if (!s_flag)
|
||||||
printf("files differ at byte %lu\n", byte);
|
printf("files differ at byte %zu\n", byte);
|
||||||
|
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
|
@ -8,7 +8,7 @@
|
||||||
#define OS_NAME "Android"
|
#define OS_NAME "Android"
|
||||||
|
|
||||||
#elif defined(__linux__)
|
#elif defined(__linux__)
|
||||||
#define OS_NAME "linux"
|
#define OS_NAME "Linux"
|
||||||
|
|
||||||
#elif defined(__OpenBSD__)
|
#elif defined(__OpenBSD__)
|
||||||
#define OS_NAME "OpenBSD"
|
#define OS_NAME "OpenBSD"
|
||||||
|
|
|
@ -8,15 +8,7 @@
|
||||||
#include "config.h"
|
#include "config.h"
|
||||||
|
|
||||||
int do_mount(const char *src, const char *dst, const char *fs_type, unsigned long opt) {
|
int do_mount(const char *src, const char *dst, const char *fs_type, unsigned long opt) {
|
||||||
#if defined(__linux__)
|
if (mount(src, dst, fs_type, opt, NULL) < 0) {
|
||||||
int ret = mount(src, dst, fs_type, opt, NULL);
|
|
||||||
|
|
||||||
#else
|
|
||||||
int ret = -1;
|
|
||||||
|
|
||||||
#endif
|
|
||||||
|
|
||||||
if (ret < 0) {
|
|
||||||
fprintf(stderr, "mount: %s: %s\n", src, strerror(errno));
|
fprintf(stderr, "mount: %s: %s\n", src, strerror(errno));
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
|
@ -0,0 +1,2 @@
|
||||||
|
#!/bin/sh
|
||||||
|
echo ./*.c $CFLAGS $OUTPUT | xargs $CC
|
|
@ -0,0 +1,40 @@
|
||||||
|
#include <stdio.h>
|
||||||
|
#include <errno.h>
|
||||||
|
#include <stdlib.h>
|
||||||
|
#include <string.h>
|
||||||
|
#include <unistd.h>
|
||||||
|
#include <sys/mount.h>
|
||||||
|
|
||||||
|
int main(int argc, char **argv) {
|
||||||
|
unsigned long flag = 0;
|
||||||
|
|
||||||
|
int opt;
|
||||||
|
while ((opt = getopt(argc, argv, "fl")) != -1) {
|
||||||
|
switch (opt) {
|
||||||
|
case 'f':
|
||||||
|
flag |= MNT_FORCE;
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 'l':
|
||||||
|
flag |= MNT_DETACH;
|
||||||
|
break;
|
||||||
|
|
||||||
|
default:
|
||||||
|
printf("umount [dst1 dst2...]\n\t[-f Force umount] [-l Lazy umount]\n");
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
argv += optind;
|
||||||
|
argc -= optind;
|
||||||
|
|
||||||
|
int ret = 0;
|
||||||
|
for (int i = 0; i < argc; i++) {
|
||||||
|
if (umount2(argv[i], flag) < 0) {
|
||||||
|
fprintf(stderr, "umount: %s: %s\n", argv[i], strerror(errno));
|
||||||
|
ret = 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return ret;
|
||||||
|
}
|
Loading…
Reference in New Issue