Something went wrong. Try again.
Reactos
Something went wrong. Try again.
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172/* * COPYRIGHT: See COPYING in the top level directory * PROJECT: ReactOS FS utility tool * FILE: base/applications/cmdutils/hardlink.c * PURPOSE: FSutil hard links handling * PROGRAMMERS: Pierre Schweitzer <pierre@reactos.org> */
#include "fsutil.h"
/* Add handlers here for subcommands */static HandlerProc CreateMain;static HandlerItem HandlersList[] ={ /* Proc, name, help */ { CreateMain, _T("create"), _T("Create a new hard link") },};
static intCreateMain(int argc, const TCHAR *argv[]){ TCHAR Source[MAX_PATH], Target[MAX_PATH];
/* We need a source and a destination */ if (argc < 3) { _ftprintf(stderr, _T("Usage: fsutil hardlink create <new> <existing>\n")); _ftprintf(stderr, _T("\tFor example: fsutil hardlink create c:\\target.txt c:\\source.txt\n")); return 1; }
/* Get full names */ if (GetFullPathName(argv[1], MAX_PATH, Target, NULL) == 0) { PrintErrorMessage(GetLastError()); return 1; }
if (GetFullPathName(argv[2], MAX_PATH, Source, NULL) == 0) { PrintErrorMessage(GetLastError()); return 1; }
/* Simply delegate to kernel32 */ if (!CreateHardLink(Target, Source, NULL)) { PrintErrorMessage(GetLastError()); return 1; }
/* Print the status */ _ftprintf(stdout, _T("Hard link created for %s <=> %s\n"), Target, Source);
return 0;}
static voidPrintUsage(const TCHAR * Command){ PrintDefaultUsage(_T(" HARDLINK "), Command, (HandlerItem *)&HandlersList, (sizeof(HandlersList) / sizeof(HandlersList[0])));}
intHardLinkMain(int argc, const TCHAR *argv[]){ return FindHandler(argc, argv, (HandlerItem *)&HandlersList, (sizeof(HandlersList) / sizeof(HandlersList[0])), PrintUsage);}