当一个程序运行起来之后就变成了一个进程,ProcessInfo对象则可用于获取该进程的相关信息,包括获取运行该程序的参数、进程标识符等,除此之外,ProcessInfo还可用于获取该进程所在系统的主机名,操作系统名,操作系统版本等信息。。。
#import <Foundation/Foundation.h>
int main(int argc, const char * argv[]) {
@autoreleasepool {
//获取当前进程对应的ProcessInfo对象
NSProcessInfo *proInfo = [NSProcessInfo processInfo];
//获取运行改程序所指定的参数
NSArray *arr = [proInfo arguments];
NSLog(@"运行程序的参数为:%@",arr);
NSLog(@"进程标识符为:%d",[proInfo processIdentifier]);
NSLog(@"进程的进程名为:%@",[proInfo processName]);
NSLog(@"进程所在系统的主机名:%@",[proInfo hostName]);
NSLog(@"进程所在系统的操作系统为:%lu",(unsigned long)[proInfo operatingSystem]);
NSLog(@"进程所在系统的操作系统名为:%@",[proInfo operatingSystemName]);
NSLog(@"进程所在系统的操作系统版本字符串为:%@",[proInfo operatingSystemVersionString]);
NSLog(@"进程所在系统的物理内存为:%lld",[proInfo physicalMemory]);
NSLog(@"进程所在系统的处理器数量为:%ld",[proInfo processorCount]);
NSLog(@"进程所在系统的激活的处理器数量为:%ld",[proInfo activeProcessorCount]);
NSLog(@"进程所在系统的运行时间为:%f",[proInfo systemUptime]);
}
return 0;
}
输出:
2016-02-03 16:03:10.129 NSFileManager[1639:1282998] 运行程序的参数为:(
"/Users/xxt/Library/Developer/Xcode/DerivedData/NSFileManager-fszedtoibnvnrablwjwjlukdpkfx/Build/Products/Debug/NSFileManager"
)
2016-02-03 16:03:10.129 NSFileManager[1639:1282998] 进程标识符为:1639
2016-02-03 16:03:10.129 NSFileManager[1639:1282998] 进程的进程名为:NSFileManager
2016-02-03 16:03:10.456 NSFileManager[1639:1282998] 进程所在系统的主机名:xxt-imacdeimac.local
2016-02-03 16:03:10.456 NSFileManager[1639:1282998] 进程所在系统的操作系统为:5
2016-02-03 16:03:10.456 NSFileManager[1639:1282998] 进程所在系统的操作系统名为:NSMACHOperatingSystem
2016-02-03 16:03:10.499 NSFileManager[1639:1282998] 进程所在系统的操作系统版本字符串为:Version 10.11.2 (Build 15C50)
2016-02-03 16:03:10.499 NSFileManager[1639:1282998] 进程所在系统的物理内存为:8589934592
2016-02-03 16:03:10.499 NSFileManager[1639:1282998] 进程所在系统的处理器数量为:4
2016-02-03 16:03:10.499 NSFileManager[1639:1282998] 进程所在系统的激活的处理器数量为:4
2016-02-03 16:03:10.499 NSFileManager[1639:1282998] 进程所在系统的运行时间为:29072.614665
Program ended with exit code: 0