⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 free.c

📁 PocketCMD是与pocketconsole配合实用的命令行解释器(Shell)
💻 C
字号:
/* *  FREE.C - internal command. * * *  History: * *    01-Sep-1999 (Eric Kohl) *        Started. */#include "config.h"#ifdef INCLUDE_CMD_FREE#include "cmd.h"/* * convert * * insert commas into a number */static INTConvertULargeInteger (ULARGE_INTEGER num, LPTSTR des, INT len){	TCHAR temp[32];	INT c = 0;	INT n = 0;	if (num.QuadPart == 0)	{		des[0] = _T('0');		des[1] = _T('\0');		n = 1;	}	else	{		temp[31] = 0;		while (num.QuadPart > 0)		{			if (((c + 1) % (nNumberGroups + 1)) == 0)				temp[30 - c++] = cThousandSeparator;			temp[30 - c++] = (TCHAR)(num.QuadPart % 10) + _T('0');			num.QuadPart /= 10;		}		for (n = 0; n <= c; n++)			des[n] = temp[31 - c + n];	}	return n;}static VOIDPrintDiskInfo (LPTSTR szDisk){	TCHAR szRootPath[4] = _T("A:\\");	TCHAR szDrive[2] = _T("A");	TCHAR szVolume[64];	TCHAR szSerial[10];	TCHAR szTotal[40];	TCHAR szUsed[40];	TCHAR szFree[40];	DWORD dwSerial;	ULARGE_INTEGER uliSize;	DWORD dwSecPerCl;	DWORD dwBytPerSec;	DWORD dwFreeCl;	DWORD dwTotCl;	if (_tcslen (szDisk) < 2 || szDisk[1] != _T(':'))	{		ConErrPrintf (_T("Invalid drive %s\n"), szDisk);		return;	}	szRootPath[0] = szDisk[0];	szDrive[0] = _totupper (szRootPath[0]);	if (!GetVolumeInformation (szRootPath, szVolume, 64, &dwSerial,	                           NULL, NULL, NULL, 0))	{		ConErrPrintf (_T("Invalid drive %s:\n"), szDrive);		return;	}	if (szVolume[0] == _T('\0'))		_tcscpy (szVolume, _T("unlabeled"));	_stprintf (szSerial,	           _T("%04X-%04X"),	           HIWORD(dwSerial),	           LOWORD(dwSerial));	if (!GetDiskFreeSpace (szRootPath, &dwSecPerCl,	                       &dwBytPerSec, &dwFreeCl, &dwTotCl))	{		ConErrPrintf (_T("Invalid drive %s:\n"), szDrive);		return;	}	uliSize.QuadPart = dwSecPerCl * dwBytPerSec * dwTotCl;	ConvertULargeInteger (uliSize, szTotal, 40);	uliSize.QuadPart = dwSecPerCl * dwBytPerSec * (dwTotCl - dwFreeCl);	ConvertULargeInteger (uliSize, szUsed, 40);	uliSize.QuadPart = dwSecPerCl * dwBytPerSec * dwFreeCl;	ConvertULargeInteger (uliSize, szFree, 40);	ConOutPrintf (_T("\n")	                 _T(" Volume in drive %s is %-11s   Serial number is %s\n")	                 _T("  %16s bytes total disk space\n")	                 _T("  %16s bytes used\n")	                 _T("  %16s bytes free\n"),	              szDrive, szVolume, szSerial,	              szTotal, szUsed, szFree);}INT CommandFree (LPTSTR cmd, LPTSTR param){	LPTSTR szParam;	TCHAR  szDefPath[MAX_PATH];	INT argc, i;	LPTSTR *arg;	if (!_tcsncmp (param, _T("/?"), 2))	{		ConOutPuts (_T("Displays drive information.\n")		               _T("\n")		               _T("FREE [drive: ...]"));		return 0;	}	if (!param || *param == _T('\0'))	{		GetCurrentDirectory (MAX_PATH, szDefPath);		szDefPath[2] = _T('\0');		szParam = szDefPath;	}	else		szParam = param;	arg = split (szParam, &argc);	for (i = 0; i < argc; i++)		PrintDiskInfo (arg[i]);	freep (arg);	return 0;}#endif /* INCLUDE_CMD_FREE *//* EOF */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -