前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【编译原理+句柄+入栈顺序从右至左+系统调用+win api+程序安排+acm ieee usenix信息】答疑

【编译原理+句柄+入栈顺序从右至左+系统调用+win api+程序安排+acm ieee usenix信息】答疑

作者头像
20岁爱吃必胜客
发布2022-11-13 09:59:18
3930
发布2022-11-13 09:59:18
举报
文章被收录于专栏:进步集

编译原理

编译原理–总结

句柄

句柄(handle),有两种解释

第一种解释:句柄是一种特殊的智能指针 。当一个应用程序要引用其他系统(如数据库、操作系统)所管理的内存块或对象时,就要使用句柄。

第二种解释:整个Windows编程的基础。

句柄是Windows用来标识被应用程序所建立或使用的对象的唯一整数,WINDOWS使用各种各样的句柄标识诸如应用程序实例,窗口,控制,位图,GDI对象等等。

一个句柄是指使用的一个唯一的整数值,即一个4字节(64位程序中为8字节)长的数值,来标识应用程序中的不同对象和同类中的不同的实例,诸如,一个窗口,按钮,图标,滚动条,输出设备,控件或者文件等。应用程序能够通过句柄访问相应的对象的信息,但是句柄不是指针,程序不能利用句柄来直接阅读文件中的信息。如果句柄不在I/O文件中,它是毫无用处的。 句柄是Windows用来标志应用程序中建立的或是使用的唯一整数,Windows大量使用了句柄来标识对象。

Windows之所以要设立句柄,根本上源于内存管理机制的问题,即虚拟地址。简而言之数据的地址需要变动,变动以后就需要有人来记录、管理变动,因此系统用句柄来记载数据地址的变更。在程序设计中,句柄是一种特殊的智能指针,当一个应用程序要引用其他系统(如数据库、操作系统)所管理的内存块或对象时,就要使用句柄。

说明:

句柄在 Windows编程中是一个很重要的概念,在 Windows程序中并不是用物理地址来标识一个内存块、文件、任务或动态装入模块的。相反地,Windows API给这些项目分配确定的句柄,并将句柄返回给应用程序,然后通过句柄来进行操作。

应该明白的是,句柄是一个标识符,是用来标识对象或者项目的。从数据类型上来看它只是一个16位的无符号整数。应用程序几乎总是通过调用一个Windows函数来获得一个句柄,之后其他的Windows函数就可以使用该句柄,以引用相应的对象。在 Windows编程中会用到大量的句柄。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

系统给每个进程UID

子进程和父进程UID一样。 用户也可以是某个组的成员 有GID

C的参数入栈顺序从右至左--------历史原因

在这里插入图片描述
在这里插入图片描述

进程管理-系统调用

fork()函数 ----父子进程返回PID不同,子进程为0,父进程返回子进程的PID

cp file1 file2 cp主程序都有声明 main(argc,argv,argp) argc是该命令行内有关参数数目的计数器 包括程序名称 v 数组指针 p指向环境的指针

win api

在这里插入图片描述
在这里插入图片描述

win api

微内核—策略与机制分离

JVM----SUN公司发明—java基于c

程序安排

文本段接近内存底部 然后数据段 然后堆向上增长 栈在最上向下增长 ,

现状

目前操作系统是一个不灵活 不可靠 不安全 巨大错误的 粪坑大系统

acm ieee usenix

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022-09-02,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 编译原理
  • 句柄
  • 系统给每个进程UID
  • C的参数入栈顺序从右至左--------历史原因
  • 进程管理-系统调用
  • win api
  • 微内核—策略与机制分离
  • JVM----SUN公司发明—java基于c
  • 程序安排
  • 现状
  • acm ieee usenix
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档