linux uname系统调用
2013-09-09 11:36
295 查看
uname系统调用入口
<kernel/sys.c> SYSCALL_DEFINE1(newuname, struct new_utsname __user *, name) { int errno = 0; down_read(&uts_sem); if (copy_to_user(name, utsname(), sizeof *name)) errno = -EFAULT; up_read(&uts_sem); if (!errno && override_release(name->release, sizeof(name->release))) errno = -EFAULT; if (!errno && override_architecture(name)) errno = -EFAULT; return errno; }其中调用utsname,定义如下:
<include/linux/utsname.h> static inline struct new_utsname *utsname(void) { return ¤t->nsproxy->uts_ns->name; }uts_ns的定义来自init_uts_ns
struct uts_namespace init_uts_ns = { .kref = { .refcount = ATOMIC_INIT(2), }, .name = { .sysname = UTS_SYSNAME, .nodename = UTS_NODENAME, .release = UTS_RELEASE, .version = UTS_VERSION, .machine = UTS_MACHINE, .domainname = UTS_DOMAINNAME, }, .user_ns = &init_user_ns, };而UTS_VERSION定义在
<include/generated/compile.h> #define UTS_VERSION "#1 PREEMPT Thu Aug 22 10:10:49 CST 2013"compile.h是在kernel/scripts/mkcompile_h这个脚本生成
相关文章推荐
- Linux系统调用--uname函数详解
- Linux系统调用列表
- 【转】Linux系统调用列表
- 在 Linux 下用户空间与内核空间数据交换的方式,第 1 部分: 内核启动参数、模块参数与sysfs、sysctl、系统调用和netlink
- 【Linux环境编程入门】四、文件操作的系统调用
- linux-0.11调试教程,系统调用sys_write的调用过程
- linux系统调用全解
- linux内核基础(系统调用,简明)
- Linux中断处理之系统调用
- 进程结束及Linux中的系统调用
- LINUX系统调用sys_mkdir()中所得的pathname参数不是全路径,要将其转为全路径的解决办法。
- linux uname命令参数及用法详解--linux查看系统信息命令
- linux系统调用实现代码分析
- linux系统调用
- Linux系统调用简介
- Linux文件编程(系统调用1)
- Linux下Signal信号系统调用
- Linux系统调用
- 如何在C语言编程中调用linux系统终端下的命令
- linux C 调用系统接口安装模块 范例