硬链接不需要admin权限,软链接需要admin权限
#include<Windows.h>
#include<tchar.h>
#include<stdio.h>
void ReportError(LPCTSTR userMessage, DWORD exitCode, BOOL printErrorMessage) {
DWORD eMsgLen, errNum = GetLastError();
LPTSTR lpvSysMsg;
_ftprintf(stderr, _T("%s\n"), userMessage);
if (printErrorMessage) {
eMsgLen = FormatMessage(FORMAT_MESSAGE_ALLOCATE_BUFFER |
FORMAT_MESSAGE_FROM_SYSTEM, NULL, errNum, MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), (LPTSTR)&lpvSysMsg, 0, NULL);
if (eMsgLen > 0) {
_ftprintf(stderr, "%s\n", lpvSysMsg);
}
else {
_ftprintf(stderr, _T("Last Error Number;%d.\n"), errNum);
}
if (lpvSysMsg != NULL)LocalFree(lpvSysMsg);
}
if (exitCode > 0)ExitProcess(exitCode);
return;
}
int _tmain(int argc, LPCTSTR argv[]) {
if (argc != 4)ReportError("error usage", 1, false);
if (CreateHardLink(argv[1], argv[3], NULL)) {
;
}
else {
ReportError("", 0, true);
}
if (CreateSymbolicLink(argv[2], argv[3], NULL)) {
;
}
else {
ReportError("", 0, true);
}
return 0;
}