LINUX 中fcntl函数在哪个文件中定义的?为什么在内核中找不到

LINUX 中fcntl函数在哪个文件中定义的?为什么在内核中找不到,第1张

fcntl是linux系统调用

在fcntl.c文件中有其定义

SYSCALL_DEFINE3(fcntl, unsigned int, fd, unsigned int, cmd, unsigned long, arg)

ps: 我的内核版本是2.6.32.63

用 fgets(buffer, MAXLENTH, stdin)

buffer 为程序里面定义的char类型的数组

MAXLENTH 为buffer的长度 即:sizeof(buffer)

stdin为标准输入端

这个函数的意思即为, 从标准输入端获得 MAXLENTH 长度的字符串,存入buffer

fread的原型为 fread(buffer,size,count, fp) 它只能获取二进制文件,如果你想用它

你就需要在终端输入 000101011010110101010101010101101010011 你看着办吧~~~~~

图中为linux中二进制的存储形式

并不是每个linux发行版本都安装了linux库函数的定义的,而且很多版本都没安装上,所以建议你搜索一下该发行版本内核源代码的安装。

ubuntu用如下命令:sudo apt-get install linux-source

会自动安装当前版本内核的源代码到 /usr/src

如果记得没错的话,fedora版本(DVD发行版)的软件包里面有内核代码的RPM包,你把它取出来,安装上就好了。

祝你好运!


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/yw/6197965.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-03-17
下一篇2023-03-17

发表评论

登录后才能评论

评论列表(0条)

    保存