在LINUX下编程的好处,限C语言C++

不同视角、不同观点、深度探讨,禁止人品和道德攻击
头像
karron
帖子: 6226
注册时间: 2005-06-11 14:03
来自: 不明真相的群众
联系:

#16

帖子 karron »

windows下面又不是不能看源代码。
我的blog,关于技术,软件,linux,vim <---- 所有博客均被河蟹.
头像
xhy
帖子: 3916
注册时间: 2005-12-28 1:16
系统: Ubuntu 12.10 X64
来自: 火星

#17

帖子 xhy »

没装windows
不知道在Linux下怎么用VC++, C++builder
目前负债150多万
头像
xhy
帖子: 3916
注册时间: 2005-12-28 1:16
系统: Ubuntu 12.10 X64
来自: 火星

#18

帖子 xhy »

windows下很多源码是看不了的
比如说创建一个进程 具体是怎么实现的?
比如说malloc分配内存 又是怎么实现的?
目前负债150多万
头像
karron
帖子: 6226
注册时间: 2005-06-11 14:03
来自: 不明真相的群众
联系:

#19

帖子 karron »

你只不过是要学习别人的实现而已, 你不一定要看windows的代码。一样可以看linux的代码。

只要想学习,哪里不能完成。 当然放不方便和值不值得又是另外的话题。
我的blog,关于技术,软件,linux,vim <---- 所有博客均被河蟹.
头像
stlxv
论坛版主
帖子: 8275
注册时间: 2006-05-03 0:39
来自: المريخ

#20

帖子 stlxv »

xhy 写了:
stlxv 写了:
xhy 写了:比如说我想知道memcpy是怎么实现的
直接一翻源代码就知道了

还有vim ctags等非常好用的代码工具
打死也不用vim

c++builder/vc++中你点个右键也能找到memcpy的实现

P.S. 你要知道它的实现做什么?
1 学习优秀的库的精妙之处
2 知道实现可以跟其它函数比较效率
1. 借口 | 盲目 | 跟风 | other
2. 傻 | 跟什么函数比效率? | 为什么要比? | 你比了吗? | 你得到了怎样的结论? | other
PHP是最好的语言!不服来战!
头像
stlxv
论坛版主
帖子: 8275
注册时间: 2006-05-03 0:39
来自: المريخ

#21

帖子 stlxv »

xhy 写了:没装windows
不知道在Linux下怎么用VC++, C++builder
wine
PHP是最好的语言!不服来战!
头像
stlxv
论坛版主
帖子: 8275
注册时间: 2006-05-03 0:39
来自: المريخ

#22

帖子 stlxv »

xhy 写了:windows下很多源码是看不了的
比如说创建一个进程 具体是怎么实现的?
比如说malloc分配内存 又是怎么实现的?
看msdn,写得极其详细,绝对比你看代码要好得多

malloc的源代码到处都有,但是看文档绝对比你看代码好得多
PHP是最好的语言!不服来战!
头像
stlxv
论坛版主
帖子: 8275
注册时间: 2006-05-03 0:39
来自: المريخ

#23

帖子 stlxv »

xhy 写了:windows下很多源码是看不了的
比如说创建一个进程 具体是怎么实现的?
比如说malloc分配内存 又是怎么实现的?
一定要看代码自己去看反汇编后的代码,保证你能学到很多东西

说不定人家就是非常精妙地用纯汇编实现的呢 :lol: :lol: :lol: :lol:
PHP是最好的语言!不服来战!
头像
xhy
帖子: 3916
注册时间: 2005-12-28 1:16
系统: Ubuntu 12.10 X64
来自: 火星

#24

帖子 xhy »

stlxv 写了:
xhy 写了:windows下很多源码是看不了的
比如说创建一个进程 具体是怎么实现的?
比如说malloc分配内存 又是怎么实现的?
看msdn,写得极其详细,绝对比你看代码要好得多

malloc的源代码到处都有,但是看文档绝对比你看代码好得多
no 我坚信 代码是最好的参考文档

效率的对比是很有意义的
C语言标准IO库的实现和read/write等实现之间的效率差距是比较大的
在APUE中有比较详细的论述

malloc的源码你在哪看到了?
别告诉我是模拟内存管理 我要看正在使用的操作系统是具体怎么实现的
难道微软把windows开源了?

MSDN固然好 但是对我没多大意义
道不同 用不同的工具 有何不妥?

至于“精妙”的C库函数代码用汇编实现 那是相当的少
有C源代码为何不看 非要自己反汇编看?
windows内核 你反汇编看出什么东西来了么?
目前负债150多万
头像
stlxv
论坛版主
帖子: 8275
注册时间: 2006-05-03 0:39
来自: المريخ

#25

帖子 stlxv »

malloc的源码:你去装个c++builder还是vc++一类的,保证你能找到
PHP是最好的语言!不服来战!
头像
stlxv
论坛版主
帖子: 8275
注册时间: 2006-05-03 0:39
来自: المريخ

#26

帖子 stlxv »

可惜我现在已经没有windows了,否则我就把malloc的实现代码给你看了
PHP是最好的语言!不服来战!
头像
Amankwah
帖子: 624
注册时间: 2006-10-16 7:24
来自: 安康/西安/广州
联系:

#27

帖子 Amankwah »

xhy 写了:
Amankwah 写了:vim编辑C源文件的时候new不会高亮,VC++弄得我怎么看怎么不爽,怎么连C和C++都不区分呢?
一个字,傻~
C源文件new为什么要高亮? C语言难道有new?
C++里new高亮是没问题的
对,我的意思是vim是认识C和C++的。new在C文件中不高亮,在C++中高亮。
而VC++的编辑器那叫一个傻,你写个hello.c里边用new做标识符,依然是高亮的~
读书取正,读易取变,读骚取幽,读庄取达,读汉文取坚,最有味卷中岁月。
与菊同野,与梅同疏,与莲同洁,与兰同芳,与海棠同韵,定自称花里神仙。
3162073
帖子: 14
注册时间: 2007-05-10 23:10

#28

帖子 3162073 »

调用malloc 编译器无非就是調系统调用... 把参数压里栈后调用int 0x80,in21h 什么的.. 反汇编是看不出什么东西.. 本来都是黑箱.. 要实现 malloc自己写个小系统就知.. 这个东西不是在应用层的
头像
xhy
帖子: 3916
注册时间: 2005-12-28 1:16
系统: Ubuntu 12.10 X64
来自: 火星

#29

帖子 xhy »

3162073 写了:调用malloc 编译器无非就是調系统调用... 把参数压里栈后调用int 0x80,in21h 什么的.. 反汇编是看不出什么东西.. 本来都是黑箱.. 要实现 malloc自己写个小系统就知.. 这个东西不是在应用层的
确实如此 因此我说在windows下看malloc的源代码根本看不到
Linux下就比较简单了 翻翻内核源码就一目了然
目前负债150多万
头像
laborer
帖子: 1016
注册时间: 2005-10-25 11:15
联系:

#30

帖子 laborer »

3162073 写了:调用malloc 编译器无非就是調系统调用... 把参数压里栈后调用int 0x80,in21h 什么的.. 反汇编是看不出什么东西.. 本来都是黑箱.. 要实现 malloc自己写个小系统就知.. 这个东西不是在应用层的
malloc的实现不完全是系统调用。可以想象一下,如果是需要分配的内存比较小的时候,每次都进入内核态让内核处理,多累啊。
hreiser@oakland:~$ killall -9 wife
police@oakland:~$ sudo find / -user hreiser
court@oakland:~$ sudo mv /home/hreiser /jail/
court@oakland:~$ sudo usermod -d /jail/hreiser -s "/usr/sbin/chroot /jail/" hreiser
回复