1. ホーム
  2. c

[解決済み] C言語でnanosleep()を使用するには?tim.tv_sec` と `tim.tv_nsec` とは何ですか?

2022-02-08 03:46:58

質問

はどのように使うのですか? tim.tv_sectim.tv_nsec を次のように入力しますか?

の実行をスリープさせるにはどうすればよいですか? 500000 マイクロ秒?

#include <stdio.h>
#include <time.h>

int main()
{
   struct timespec tim, tim2;
   tim.tv_sec = 1;
   tim.tv_nsec = 500;

   if(nanosleep(&tim , &tim2) < 0 )   
   {
      printf("Nano sleep system call failed \n");
      return -1;
   }

   printf("Nano sleep successfull \n");

   return 0;
}

解決方法は?

半秒は500,000,000ナノ秒なので、あなたのコードはこうなります。

tim.tv_sec  = 0;
tim.tv_nsec = 500000000L;

現状では、あなたのコードは1.0000005秒(1秒+500ns)眠っていることになります。