title: The C `clock()` function just returns a zero
body: <p>The C <code>clock()</code> function just returns me a zero. I tried using different types, with no improvement... Is this a good way to measure time with good precision?</p>
  
  <pre><code>#include &lt;time.h&gt;
  #include &lt;stdio.h&gt;
  
  int main()
  {
      clock_t start, end;
      double cpu_time_used;
  
      char s[32];
  
      start = clock();
  
      printf("\nSleeping 3 seconds...\n\n");
      sleep(3);
  
      end = clock();
  
      cpu_time_used = ((double)(end - start)) / ((double)CLOCKS_PER_SEC);
  
      printf("start = %.20f\nend   = %.20f\n", start, end);
      printf("delta = %.20f\n", ((double) (end - start)));
      printf("cpu_time_used  = %.15f\n", cpu_time_used);
      printf("CLOCKS_PER_SEC = %i\n\n", CLOCKS_PER_SEC);
  
      return 0;
  }
  </code></pre>
  
  <blockquote>
  <pre><code>Sleeping 3 seconds...
  
  start = 0.00000000000000000000
  end   = 0.00000000000000000000
  delta = 0.00000000000000000000
  cpu_time_used  = 0.000000000000000
  CLOCKS_PER_SEC = 1000000
  </code></pre>
  </blockquote>
  
  <p>Platform: Intel 32 bit, RedHat Linux, gcc 3.4.6</p>