static void cmd_mount (char *args) { char *vpath, *rpath; if (!get2args ("mount", args, vpath, rpath)) return; if (!VFS->Mount (vpath, rpath)) csPrintfErr ("mount: cannot mount \"%s\" to \"%s\"\n", rpath, vpath); }
static void cmd_unmount (char *args) { char *vpath, *rpath; if (!get2args ("unmount", args, vpath, rpath, false)) return; if (!*rpath) rpath = 0; if (!VFS->Unmount (vpath, rpath)) csPrintfErr ("unmount: cannot unmount \"%s\" from \"%s\"\n", rpath, vpath); }
int main( ) { int a, b, erg; int sel_op; int ende = FALSE; do { printf("Gewuenschte Operation? \n"); printf(" 1: add 2: sub \n"); printf(" 3: mult 4: div \n"); printf(" 5: rest 6: rest_add \n"); printf(" 7: basis \n"); printf(" 99: Programmende \n\n"); scanf("%d", &sel_op); switch (sel_op) { case 1: get2args( &a, &b ); erg = add ( a, b ); puterg2("add", a, b, erg); break; case 2: get2args( &a, &b ); erg = sub( a, b ); puterg2("sub", a, b, erg); break; case 3: get2args( &a, &b ); erg = mult( a, b ); puterg2("mult", a, b, erg); break; case 4: get2args( &a, &b ); erg = div( a, b ); puterg2("div", a, b, erg); break; case 5: getarg( &a ); erg = rest( a ); puterg1("rest", a, erg); break; case 6: get2args( &a, &b ); erg = rest_add( a, b ); puterg2("rest_add", a, b, erg); break; case 7: erg = basis( ); puterg0("basis", erg); break; case 99: ende = TRUE; break; default: break; } } while ( !ende ); return 0; }
static void cmd_cp (char *args) { bool onepass; get_option (args, onepass); char *src, *dst; if (!get2args ("cp", args, src, dst)) return; csRef<iStringArray> fl (VFS->FindFiles (src)); size_t i; for (i = 0; i < fl->GetSize () ; i++) { char destname [VFS_MAX_PATH_LEN + 1]; src = (char *)fl->Get (i); if (fl->GetSize () > 1) { size_t dirlen = strlen (src); if (dirlen) dirlen--; while (dirlen && src [dirlen - 1] != VFS_PATH_SEPARATOR) dirlen--; strcpy (destname, dst); if (destname [0]) if (destname [strlen (destname) - 1] != VFS_PATH_SEPARATOR) strcat (destname, "/"); strcat (destname, src + dirlen); csPrintf ("%s -> %s\n", src, destname); dst = destname; } if (onepass) { csRef<iDataBuffer> data (VFS->ReadFile (src)); if (!data) { csPrintfErr ("cp: cannot read file \"%s\"\n", src); return; } if (!VFS->WriteFile (dst, **data, data->GetSize ())) csPrintfErr ("cp: error writing to file \"%s\"\n", dst); } else { csRef<iFile> dF (VFS->Open (dst, VFS_FILE_WRITE)); if (!dF) { csPrintfErr ("cp: cannot open destination file \"%s\"\n", dst); return; } csRef<iFile> sF (VFS->Open (src, VFS_FILE_READ)); if (!sF) { csPrintfErr ("cp: cannot open source file \"%s\"\n", src); return; } while (!sF->AtEOF ()) { char buff [123]; size_t len = sF->Read (buff, sizeof (buff)); if (dF->Write (buff, len) != len) { csPrintfErr ("cp: error writing to file \"%s\"\n", dst); break; } } } } }