2012-04-26 2 views
3

어떻게 목표 C에서 ios 부팅 시간을 얻을 수 있습니까?목표 C에서 부팅 시간 가져 오기

얻을 수있는 방법이 있습니까?

+0

부팅 시간이? 앱 실행 시간을 의미합니까? – tipycalFlow

+0

['clock()'] (http://www.cplusplus.com/reference/clibrary/ctime/clock/)을 사용해보십시오. 나는 그것이 iOS에서 무엇을 반환하는지 확신 할 수는 없지만 표준 라이브러리의 일부이므로 shouold를 수행 할 수있는 합리적인 기회가 있습니다. – dasblinkenlight

+0

@tipycalFlow 아니오, ios 실행 시간 (운영 체제)을 의미했습니다. 고마워요. – Youssef

답변

11

iOS에서는 작동하지만 OS X (본질적으로 동일한 OS 임)에서는 sysctl()을 사용할지 모르겠다. 이것이 OS X Unix 유틸리티 uptime의 기능입니다. Source code을 사용할 수 있습니다 - "boottime"으로 검색하십시오.

#include <sys/types.h> 
#include <sys/sysctl.h> 

// .... 

#define MIB_SIZE 2 

int mib[MIB_SIZE]; 
size_t size; 
struct timeval boottime; 

mib[0] = CTL_KERN; 
mib[1] = KERN_BOOTTIME; 
size = sizeof(boottime); 
if (sysctl(mib, MIB_SIZE, &boottime, &size, NULL, 0) != -1) 
{ 
    // successful call 
    NSDate* bootDate = [NSDate dateWithTimeIntervalSince1970:boottime.tv_sec]; 
} 

아이폰 OS 샌드 박스 환경에서 프로그래밍의 제한된 자연 나는 그것을 시도하지 않은, 나도 몰라, 그것이 작동하지 만들 수 있습니다.

+1

App Store에는 sysctl 기능을 사용하는 앱이 있습니다. 반드시 이것이 허용되는 것은 아닙니다. – mttrb

+2

이 작동하는 것처럼 보였습니다. NSDate로 가져 오는 방법을 보여주는 답을 편집했습니다. – Felix

+2

앱 스토어에서 절대적으로 허용됩니다. –