#include<sys/types.h>
#include<unistd.h>
#include<stdio.h>
#include<stdlib.h>
#include<sys/wait.h>
unsigned int snooze(unsigned int secs){
unsigned int a=sleep(secs);
printf("slept for %d of %d secs",secs-a,secs);
}
int main(){
snooze(6);
}
問下這里的secs-a是什么意思
如果不加sesc的話,直接寫a,會得到slept for 0 of 6,但是加上了就會 6 of 6
uj5u.com熱心網友回復:
從你的描述來看,secs是6秒,程式休眠6秒,回傳值a也是6秒,所以secs-a就是6-6=0,如果只列印a,那當然就是6了uj5u.com熱心網友回復:
建議看一下sleep的回傳值.回傳值應該是是實際休眠的時間
uj5u.com熱心網友回復:
sleep函式回傳值:若行程暫停到引數seconds所指定的時間則回傳0,若有信號中斷則回傳剩余秒數。所以a=0, secs-a=6-0=6;
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/140680.html
標籤:C語言
