os_id.c
上传用户:romrleung
上传日期:2022-05-23
资源大小:18897k
文件大小:1k
源码类别:

MySQL数据库

开发平台:

Visual C++

  1. /*-
  2.  * See the file LICENSE for redistribution information.
  3.  *
  4.  * Copyright (c) 2001-2002
  5.  * Sleepycat Software.  All rights reserved.
  6.  */
  7. #include "db_config.h"
  8. #ifndef lint
  9. static const char revid[] = "$Id: os_id.c,v 1.2 2002/01/11 15:52:59 bostic Exp $";
  10. #endif /* not lint */
  11. #ifndef NO_SYSTEM_INCLUDES
  12. #include <sys/types.h>
  13. #include <unistd.h>
  14. #endif
  15. #include "db_int.h"
  16. /*
  17.  * __os_id --
  18.  * Return a 32-bit value identifying the current thread of control.
  19.  *
  20.  * PUBLIC: void __os_id __P((u_int32_t *));
  21.  */
  22. void
  23. __os_id(idp)
  24. u_int32_t *idp;
  25. {
  26. /*
  27.  * By default, use the process ID.
  28.  *
  29.  * getpid() returns a pid_t which we convert to a u_int32_t.  I have
  30.  * not yet seen a system where a pid_t has 64-bits, but I'm sure they
  31.  * exist.  Since we're returning only the bottom 32-bits, you cannot
  32.  * use the return of __os_id to reference a process (for example, you
  33.  * cannot send a signal to the value returned by __os_id).  To send a
  34.  * signal to the current process, use raise(3) instead.
  35.  */
  36. #ifdef HAVE_VXWORKS
  37. *idp = taskIdSelf();
  38. #else
  39. *idp = getpid();
  40. #endif
  41. }