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

📄 sysconf.cc

📁 cygwin, 著名的在win32下模拟unix操作系统的东东
💻 CC
字号:
/* sysconf.cc   Copyright 1996, 1997, 1998, 1999, 2000, 2001, 2002 Red Hat, Inc.This file is part of Cygwin.This software is a copyrighted work licensed under the terms of theCygwin license.  Please consult the file "CYGWIN_LICENSE" fordetails. */#include "winsup.h"#include <unistd.h>#include <errno.h>#include <time.h>#include <limits.h>#include <ntdef.h>#include "security.h"#include "fhandler.h"#include "path.h"#include "dtable.h"#include "cygerrno.h"#include "cygheap.h"#include "ntdll.h"/* sysconf: POSIX 4.8.1.1 *//* Allows a portable app to determine quantities of resources or   presence of an option at execution time. */long intsysconf (int in){  switch (in)    {      case _SC_ARG_MAX:	/* FIXME: what's the right value?  _POSIX_ARG_MAX is only 4K */	return 1048576;      case _SC_OPEN_MAX:	return getdtablesize ();      case _SC_PAGESIZE:	return getpagesize ();      case _SC_CLK_TCK:	return CLOCKS_PER_SEC;      case _SC_JOB_CONTROL:	return _POSIX_JOB_CONTROL;      case _SC_CHILD_MAX:	return CHILD_MAX;      case _SC_NGROUPS_MAX:	return NGROUPS_MAX;      case _SC_SAVED_IDS:	return _POSIX_SAVED_IDS;      case _SC_VERSION:	return _POSIX_VERSION;#if 0	/* FIXME -- unimplemented */      case _SC_TZNAME_MAX:	return _POSIX_TZNAME_MAX;      case _SC_STREAM_MAX:	return _POSIX_STREAM_MAX;#endif      case _SC_NPROCESSORS_CONF:      case _SC_NPROCESSORS_ONLN:	if (!wincap.supports_smp ())	  return 1;	/*FALLTHRU*/      case _SC_PHYS_PAGES:      case _SC_AVPHYS_PAGES:	if (wincap.supports_smp ())	  {	    NTSTATUS ret;	    SYSTEM_BASIC_INFORMATION sbi;	    if ((ret = NtQuerySystemInformation (SystemBasicInformation,						   (PVOID) &sbi,						 sizeof sbi, NULL))		  != STATUS_SUCCESS)	      {		__seterrno_from_win_error (RtlNtStatusToDosError (ret));		debug_printf ("NtQuerySystemInformation: ret = %d, "			      "Dos(ret) = %d",			      ret, RtlNtStatusToDosError (ret));		return -1;	      }	    switch (in)	      {	      case _SC_NPROCESSORS_CONF:	       return sbi.NumberProcessors;	      case _SC_NPROCESSORS_ONLN:	       return sbi.ActiveProcessors;	      case _SC_PHYS_PAGES:		return sbi.NumberOfPhysicalPages;	      case _SC_AVPHYS_PAGES:		return sbi.HighestPhysicalPage - sbi.LowestPhysicalPage + 1;	      }	  }	break;    }  /* Invalid input or unimplemented sysconf name */  set_errno (EINVAL);  return -1;}

⌨️ 快捷键说明

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