免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: junenggai
打印 上一主题 下一主题

高手必看:程序出了main()入口外还有其它的吗 [复制链接]

论坛徽章:
0
11 [报告]
发表于 2006-04-05 13:16 |只看该作者

真是长见识,我面试时出的题目

真是长见识,我面试时出的题目,谢了诸大虾,我还是好好活着吧

论坛徽章:
0
12 [报告]
发表于 2006-04-05 13:17 |只看该作者
原帖由 wz_uestc 于 2006-4-5 13:04 发表
不明白,改变程序的入口点有什么意义呢????


举个简单的例子,如果你想自己写操作系统,难道要连接表准的函数库吗?这些函数库可是操作系统相关的。

论坛徽章:
0
13 [报告]
发表于 2006-04-05 13:18 |只看该作者

真是长见识,我面试时出的题目,谢了诸大虾,我还是好好活着吧

真是长见识,我面试时出的题目,谢了诸大虾,我还是好好活着吧

论坛徽章:
0
14 [报告]
发表于 2006-04-05 13:30 |只看该作者
老大。。。
一个破面试题至于‘以死相报’阿

论坛徽章:
1
2015年辞旧岁徽章
日期:2015-03-03 16:54:15
15 [报告]
发表于 2006-04-05 13:47 |只看该作者
原帖由 0521 于 2006-4-5 13:10 发表



跟电源开关有啥关系?
操作系统总要执行一个类似 fork() 的东西。创建一个进程。然后呢,它会从内核空间 “跳转” 到用户空间。用户空间的执行的第一条汇编指令我称为“入口”,不知道这么说没说明白。那  ...

不摁电源开关,程序怎么启动?
所以说,所有的 software 的总入口,也是唯一入口,就是电源开关。
你把【用户空间的执行的第一条汇编指令】【称为“入口”】,我却认为,所谓的”用户空间“只不过是操作系统实现技术上的说法,C/C++ 语言不一定要跑在计算机里,在人脑里一样可以跑,所以说,我把 ANSI 规定的入口,也就是 main 或者全局变量的构造函数,称为入口,而你所谓的入口,只能叫“stub”,或者“wrap”,也就是对 C 程序的一层“包装”。

论坛徽章:
0
16 [报告]
发表于 2006-04-05 13:49 |只看该作者
原帖由 bleem1998 于 2006-4-5 11:59 发表
以前有个帖子是关于如何让valgrind支持线程
隐约记得里头用到了一个gcc特有的宏
该宏可以使一个函数在main之前就执行
具体的我也记不得了


兄弟, 我觉得你水平已经相当好了, 可惜总记不住东西, 不妨每得到新知识, 就写入电子文档, 或者自己的小程序里。 时间长了, 便是个不错的积累呢。

  1. #include <stdio.h>
  2. #include <string.h>

  3. void foo() __attribute__ ((constructor));


  4. int main()
  5. {
  6.         return 0;
  7. }

  8. void foo()
  9. {
  10.         printf("Hello from %s\n", __FUNCTION__);
  11. }
复制代码

论坛徽章:
0
17 [报告]
发表于 2006-04-05 13:51 |只看该作者
我没有在人脑里跑程序的本事,我甘拜下风。

论坛徽章:
0
18 [报告]
发表于 2006-04-05 14:22 |只看该作者
flw 赐教了,另外我还觉得程序的入口是——猴子,因为计算机是人发明的,人是猴子变的。

论坛徽章:
0
19 [报告]
发表于 2006-04-05 14:23 |只看该作者
不是任何一条指令扔给CPU,CPU都会无条件执行么???那么,能不能认为,把程序的第一条指令送给CPU的那一点是程序的真正入口呢?????

论坛徽章:
0
20 [报告]
发表于 2006-04-05 14:30 |只看该作者
原帖由 0521 于 2006-4-5 13:10 发表



跟电源开关有啥关系?
操作系统总要执行一个类似 fork() 的东西。创建一个进程。然后呢,它会从内核空间 “跳转” 到用户空间。用户空间的执行的第一条汇编指令我称为“入口”,不知道这么说没说明白。那  ...


大家别争吵, 只争论, 呵呵, 都友好一点嘛!

我觉得如果这么定义“入口”, 那么你说的crt0.o就不是入口, 而是loader, 在linux下, 即:/lib/ld-linux.so.2, 它才是OS从execve返回到用户态开始执行的第一条指令所在。

你觉得呢?
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP