fcntl.h 2.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  1. /*
  2. * Copyright (c) 2006-2022, RT-Thread Development Team
  3. *
  4. * SPDX-License-Identifier: Apache-2.0
  5. *
  6. * Change Logs:
  7. * Date Author Notes
  8. * 2022-09-02 Meco Man First version
  9. */
  10. #ifndef __FCNTL_H__
  11. #define __FCNTL_H__
  12. #include "sys/types.h"
  13. #ifdef __cplusplus
  14. extern "C" {
  15. #endif
  16. /* VS fcntl.h interent */
  17. #define O_RDONLY 0x0000 /* open for reading only */
  18. #define O_WRONLY 0x0001 /* open for writing only */
  19. #define O_RDWR 0x0002 /* open for reading and writing */
  20. #define O_APPEND 0x0008 /* writes done at eof */
  21. #define O_CREAT 0x0100 /* create and open file */
  22. #define O_TRUNC 0x0200 /* open and truncate */
  23. #define O_EXCL 0x0400 /* open only if file doesn't already exist */
  24. // O_TEXT files have <cr><lf> sequences translated to <lf> on read()'s and <lf>
  25. // sequences translated to <cr><lf> on write()'s
  26. #define O_TEXT 0x4000 /* file mode is text (translated) */
  27. #define O_BINARY 0x8000 /* file mode is binary (untranslated) */
  28. #define O_RAW O_BINARY
  29. #define O_TEMPORARY 0x0040 /* temporary file bit (file is deleted when last handle is closed) */
  30. #define O_NOINHERIT 0x0080 /* child process doesn't inherit file */
  31. #define O_SEQUENTIAL 0x0020 /* file access is primarily sequential */
  32. #define O_RANDOM 0x0010 /* file access is primarily random */
  33. /* extension */
  34. #define O_ACCMODE 0x0003 /* mask for above modes, from 4.4BSD https://minnie.tuhs.org/cgi-bin/utree.pl?file=4.4BSD/usr/include/sys/fcntl.h */
  35. #define O_NONBLOCK 0x0004 /* non blocking I/O, from BSD apple https://opensource.apple.com/source/xnu/xnu-1228.0.2/bsd/sys/fcntl.h */
  36. #define O_DIRECTORY 0x200000 /* from Newlib */
  37. #define F_DUPFD 0
  38. #define F_GETFD 1
  39. #define F_SETFD 2
  40. #define F_GETFL 3
  41. #define F_SETFL 4
  42. #define F_SETOWN 8
  43. #define F_GETOWN 9
  44. #define F_SETSIG 10
  45. #define F_GETSIG 11
  46. #define F_GETLK 12
  47. #define F_SETLK 13
  48. #define F_SETLKW 14
  49. #define F_SETOWN_EX 15
  50. #define F_GETOWN_EX 16
  51. #define F_GETOWNER_UIDS 17
  52. int open(const char *file, int flags, ...);
  53. int fcntl(int fildes, int cmd, ...);
  54. int creat(const char *path, mode_t mode);
  55. #ifdef __cplusplus
  56. }
  57. #endif
  58. #endif