Я звоню sysctl()
для получения статистики mem, а для аргумента void* oldVal
я передаю указатель на double. Однако вместо того, чтобы установить double на правильное значение, он просто устанавливает его на 0,00000
Однако, когда я пытаюсь сделать то же самое с длинным, он устанавливает для него правильный показатель. Почему двойное значение устанавливается на 0,00000, а длинное - на правильный стат?
int systemInfoNeeded[2] = {CTL_HW, HW_PHYSMEM};
size_t sizeOfBuffer = sizeof(totalAmount);
if (sysctl(systemInfoNeeded, 2, &totalAmount, &sizeOfBuffer, NULL, 0))
{
NSLog(@"Total memory stat retrieval failed.\n");
exit (EXIT_FAILURE);
}
totalAmount является двойным. Во-вторых, я меняю тип totalAmount на long, он отлично работает. Могу ли я заставить двойника работать? Я хочу напрямую отправить totalAmount
вместо отправки long и затем присвоить значение totalAmount
.
Я использую Objective-C / C в Mac OS X Snowleopard с Xcode 3.2.6