MKNOD.2
上传用户:datang2001
上传日期:2007-02-01
资源大小:53269k
文件大小:3k
源码类别:

操作系统开发

开发平台:

C/C++

  1. ." Copyright (c) 1980 Regents of the University of California.
  2. ." All rights reserved.  The Berkeley software License Agreement
  3. ." specifies the terms and conditions for redistribution.
  4. ."
  5. ." @(#)mknod.2 6.4 (Berkeley) 5/23/86
  6. ."
  7. .TH MKNOD 2 "May 23, 1986"
  8. .UC 4
  9. .SH NAME
  10. mknod, mkfifo - make a special file
  11. .SH SYNOPSIS
  12. .nf
  13. .ft B
  14. #include <sys/types.h>
  15. #include <unistd.h>
  16. #include <sys/stat.h>
  17. int mknod(const char *fIpathfP, mode_t fImodefP, dev_t fIdevfP)
  18. int mkfifo(const char *fIpathfP, mode_t fImodefP)
  19. .fi
  20. .ft R
  21. .SH DESCRIPTION
  22. .B Mknod
  23. creates a new file
  24. whose name is
  25. .I path.
  26. The mode of the new file
  27. (including special file bits)
  28. is initialized from
  29. .IR mode ,
  30. as defined in
  31. .IR <sys/stat.h> .
  32. (The protection part of the mode
  33. is modified by the process's mode mask (see
  34. .BR umask (2))).
  35. The first block pointer of the i-node
  36. is initialized from
  37. .I dev 
  38. and is used to specify which device the special file
  39. refers to.
  40. .PP
  41. If mode indicates a block or character special file,
  42. .I dev
  43. is the device number of a character or block I/O device.
  44. The low eight bits of the device number hold the minor device number
  45. that selects a device among the devices governed by the same driver.
  46. The driver is selected by the major device number, the next eight bits
  47. of the device number.
  48. .PP
  49. If
  50. .I mode
  51. does not indicate a block special or character special device,
  52. .I dev
  53. is ignored.
  54. (For example, when creating a ``fifo'' special file.)
  55. .PP
  56. .B Mknod
  57. may be invoked only by the super-user,
  58. unless it is being used to create a fifo.
  59. .PP
  60. The call
  61. .BI "mkfifo(" path ", " mode ")"
  62. is equivalent to
  63. .PP
  64. .RS
  65. .BI "mknod(" path ", (" mode " & 0777) | S_IFIFO, 0)"
  66. .RE
  67. .SH "RETURN VALUE
  68. Upon successful completion a value of 0 is returned.
  69. Otherwise, a value of -1 is returned and fBerrnofP
  70. is set to indicate the error.
  71. .SH ERRORS
  72. .B Mknod
  73. will fail and the file mode will be unchanged if:
  74. .TP 15
  75. [ENOTDIR]
  76. A component of the path prefix is not a directory.
  77. .TP 15
  78. [ENAMETOOLONG]
  79. The path name exceeds PATH_MAX characters.
  80. .TP 15
  81. [ENOENT]
  82. A component of the path prefix does not exist.
  83. .TP 15
  84. [EACCES]
  85. Search permission is denied for a component of the path prefix.
  86. .TP 15
  87. [ELOOP]
  88. Too many symbolic links were encountered in translating the pathname.
  89. (Minix-vmd)
  90. .TP 15
  91. [EPERM]
  92. The process's effective user ID is not super-user.
  93. .TP 15
  94. [EIO]
  95. An I/O error occurred while making the directory entry or allocating the inode.
  96. .TP 15
  97. [ENOSPC]
  98. The directory in which the entry for the new node is being placed
  99. cannot be extended because there is no space left on the file
  100. system containing the directory.
  101. .TP 15
  102. [ENOSPC]
  103. There are no free inodes on the file system on which the
  104. node is being created.
  105. .ig
  106. .TP 15
  107. [EDQUOT]
  108. The directory in which the entry for the new node
  109. is being placed cannot be extended because the
  110. user's quota of disk blocks on the file system
  111. containing the directory has been exhausted.
  112. .TP 15
  113. [EDQUOT]
  114. The user's quota of inodes on the file system on
  115. which the node is being created has been exhausted.
  116. ..
  117. .TP 15
  118. [EROFS]
  119. The named file resides on a read-only file system.
  120. .TP 15
  121. [EEXIST]
  122. The named file exists.
  123. .TP 15
  124. [EFAULT]
  125. .I Path
  126. points outside the process's allocated address space.
  127. .SH "SEE ALSO"
  128. .BR chmod (2),
  129. .BR stat (2),
  130. .BR umask (2).