一些C和Unix函数之间的关系是什么
例如,在C中,我们有一些C和Unix函数之间的关系是什么,c,linux,unix,C,Linux,Unix,例如,在C中,我们有fopen,在Unix中,我们有open。他们之间有一些细微的差别,但他们在做同样的事情 C和Unix中还存在许多其他函数,它们之间的关系是什么?我应该选择哪一个?在成功时返回一个文件*,但在成功时返回一个文件描述符,因此它们没有执行相同的操作(因为没有提供相同的类型) 但是,在Linux上,fopen在内部使用open(还有一些其他的…) 文件句柄正在处理缓冲。使用诸如open和read之类的系统调用,您最好自己进行缓冲 另请参见&并阅读&。请注意,在Linux上,从用户和
fopen
,在Unix中,我们有open
。他们之间有一些细微的差别,但他们在做同样的事情
C和Unix中还存在许多其他函数,它们之间的关系是什么?我应该选择哪一个?在成功时返回一个文件*
,但在成功时返回一个文件描述符,因此它们没有执行相同的操作(因为没有提供相同的类型)
但是,在Linux上,fopen
在内部使用open
(还有一些其他的…)
文件句柄正在处理缓冲。使用诸如open
和read
之类的系统调用,您最好自己进行缓冲
另请参见&并阅读&。请注意,在Linux上,从用户和应用程序的角度来看,系统调用本质上是一种原子基本操作(例如SYSCALL
或syscenter
机器指令)
用于查明(通过给定的进程或命令)执行了哪些系统调用
在Linux上,正在实现系统调用上方的标准函数(如fprintf
…)
许多系统调用没有任何libc对应项(包装器除外),例如,open是来自Unix系统的系统调用。 fopen是打开文件的标准c函数 使用fopen比使用open有一些优点
- 它是多平台的,因为它是C标准,您可以使用C编译器将程序移植到任何平台
- 它支持使用C标准函数(即:fprintf、fscanf)
- 如果处理文本文件,这些函数可以处理不同的新行字符(Unix/Windows)
C
是一种语言,Unix
是一种操作系统。如果您的目标是Unix系统,请选择标准库函数。如果该函数不可用,则首选POSIX函数。如果不可用,请使用本地SO功能。。。如果没有,写下你自己的。答案如下: