NSProcessInfo用于获取进程相关信息。
@property (class, readonly, strong) NSProcessInfo *processInfo;
获取NSProcessInfo的单例
@property (readonly, copy) NSDictionary<NSString *, NSString *> *environment;
返回环境变量字典
@property (readonly, copy) NSArray<NSString *> *arguments;
返回命令行参数数组
NSProcessInfo *info=[NSProcessInfo processInfo];
NSArray *argv=[info arguments];
NSLog(@"arguments = %@",argv);
输出
arguments = (
"/Users/xxx/Library/Developer/CoreSimulator/Devices/C45D215F-B78C-4D92-BCDD-0A76DFD5657D/data/Containers/Bundle/Application/D07BAA18-57EB-475E-8DF2-84CC19AA9DD4/objc-base.app/objc-base"
)
@property (readonly, copy) NSString *hostName;
返回主机名
NSProcessInfo *info=[NSProcessInfo processInfo];
NSString *host=[info hostName];
NSLog(@"hostName = %@",host);
输出
hostName = xxxtekiMac.local
@property (copy) NSString *processName;
返回进程名字
@property (readonly) int processIdentifier;
返回进程标识符
@property (readonly, copy) NSString *globallyUniqueString;
返回全局唯一的字符串
NSProcessInfo *info=[NSProcessInfo processInfo];
NSString *pname=[info processName];
int pid=[info processIdentifier];
NSString *pstr=[info globallyUniqueString];
NSLog(@"processName = %@ processIdentifier = %d globallyUniqueString = %@",pname,pid,pstr);
输出
processName = objc-base processIdentifier = 980 globallyUniqueString = A3378B9D-5107-4B2A-A917-33E241603BEB-980-00000740D246AFA4
- (NSUInteger)operatingSystem
返回操作系统类型。返回值为下面的类型
enum {
NSWindowsNTOperatingSystem = 1,
NSWindows95OperatingSystem,
NSSolarisOperatingSystem,
NSHPUXOperatingSystem,
NSMACHOperatingSystem,
NSSunOSOperatingSystem,
NSOSF1OperatingSystem
}
- (NSString *)operatingSystemName
返回操作系统的名字
@property (readonly, copy) NSString *operatingSystemVersionString;
返回操作系统的版本号
@property (readonly) NSOperatingSystemVersion operatingSystemVersion
返回操作系统的版本。
typedef struct {
NSInteger majorVersion;
NSInteger minorVersion;
NSInteger patchVersion;
} NSOperatingSystemVersion;
NSProcessInfo *info=[NSProcessInfo processInfo];
NSInteger opt = [info operatingSystem];
NSString *name=[info operatingSystemName];
NSString *version=[info operatingSystemVersionString];
NSOperatingSystemVersion ver=[info operatingSystemVersion];
NSLog(@"operatingSystem = %ld \n operatingSystemName = %@ \n operatingSystemVersionString = %@ \n operatingSystemVersion = %ld %ld %ld",opt,name,version,ver.majorVersion,ver.minorVersion,ver.patchVersion);
输出
2017-05-06 03:15:29.900 objc-base[1010:29501] operatingSystem = 5
operatingSystemName = NSMACHOperatingSystem
operatingSystemVersionString = Version 10.2 (Build 14C89)
operatingSystemVersion = 10 2 0
@property (readonly) NSUInteger processorCount
返回处理器数量
@property (readonly) NSUInteger activeProcessorCount
返回活动的处理器数量
@property (readonly) unsigned long long physicalMemory
返回物理内存大小
@property (readonly) NSTimeInterval systemUptime
返回启动到现在经过的秒数
NSProcessInfo *info=[NSProcessInfo processInfo];
NSUInteger cpuCount=[info processorCount];
NSUInteger aCpuCount=[info activeProcessorCount];
unsigned long long mem=[info physicalMemory];
NSTimeInterval tim=[info systemUptime];
NSLog(@"processorCount = %lu ",cpuCount);
NSLog(@"activeProcessorCount = %lu",aCpuCount);
NSLog(@"physicalMemory = %llu",mem);
NSLog(@"systemUptime = %lf",tim);
输出
2017-05-06 03:22:25.649 objc-base[1033:31119] processorCount = 1
2017-05-06 03:22:25.649 objc-base[1033:31119] activeProcessorCount = 1
2017-05-06 03:22:25.650 objc-base[1033:31119] physicalMemory = 4294967296
2017-05-06 03:22:25.650 objc-base[1033:31119] systemUptime = 9069.080363