sleep.c 550 B

12345678910111213141516171819202122232425262728293031323334353637
  1. #include <u.h>
  2. #include <libc.h>
  3. void
  4. main(int argc, char *argv[])
  5. {
  6. long n;
  7. char *p, *q;
  8. if(argc>1){
  9. for(n = strtol(argv[1], &p, 0); n > 0; n--)
  10. sleep(1000);
  11. /*
  12. * no floating point because it is useful to
  13. * be able to run sleep when bootstrapping
  14. * a machine.
  15. */
  16. if(*p++ == '.' && (n = strtol(p, &q, 10)) > 0){
  17. switch(q - p){
  18. case 0:
  19. break;
  20. case 1:
  21. n *= 100;
  22. break;
  23. case 2:
  24. n *= 10;
  25. break;
  26. default:
  27. p[3] = 0;
  28. n = strtol(p, 0, 10);
  29. break;
  30. }
  31. sleep(n);
  32. }
  33. }
  34. exits(0);
  35. }