Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/macos/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Objective c 有没有办法知道上次启动OSX花了多少时间?_Objective C_Macos_Cocoa_Boot - Fatal编程技术网

Objective c 有没有办法知道上次启动OSX花了多少时间?

Objective c 有没有办法知道上次启动OSX花了多少时间?,objective-c,macos,cocoa,boot,Objective C,Macos,Cocoa,Boot,有没有办法以编程方式(目标C/C)获得OS X上次启动的时间?例如,上一次启动OSX需要30秒。所以我在前一段时间做了这项工作,以便在Geek工具中显示它。我最初希望在Objective-C中实现它,但在Python中实现起来要容易得多: import time import subprocess import re currentTime = time.time() p = subprocess.Popen('sysctl kern.boottime', shell=True, stdout

有没有办法以编程方式(目标C/C)获得OS X上次启动的时间?例如,上一次启动OSX需要30秒。

所以我在前一段时间做了这项工作,以便在Geek工具中显示它。我最初希望在Objective-C中实现它,但在Python中实现起来要容易得多:

import time
import subprocess
import re

currentTime = time.time()
p = subprocess.Popen('sysctl kern.boottime', shell=True, stdout=subprocess.PIPE, stderr=subprocess.STDOUT)
for line in p.stdout.readlines():
    bootTime = line
    break

p = re.compile('\d+')
bootTime = p.findall(bootTime)[0]
uptime = int(currentTime) - int(bootTime)

不完全是您想要的,但是您可以从Objective-C调用这个脚本,或者正如您所看到的,您调用的命令是
sysctl kern.boottime
,它返回类似于:
kern.boottime:{sec=1382617144,usec=0}2013年10月24日星期四13:19:04

你是说上次开机?难道你不能通过
popen
运行
正常运行时间
并解析输出吗?胡说八道;如果OP想要自上次启动时间起的时间,那么使用
sysctl(3)
并获取
kern.boottime
是一种更好的方法。你们看了sysctl(3)了吗?请再读一遍这个主题。我需要上次OSX启动过程花费的时间。(不是上次开机的时间)。例如,上一次OS X启动只花了10秒钟。kern.boottime没有这样的信息。你可能应该把你的问题说得更清楚。听起来你想知道上次开机以来的时间。