low-level相关内容
我阅读了本文关于C / C ++的一些低级基础,作者基本上通过编译器生成的汇编代码逐行显示我们。他使用VS 2010,但我不,我使用Code :: Blocks。如何查看反汇编?当我去调试器,并单击反汇编,它显示一个空白的窗口... 这是C ++(.cpp)代码: int main() { int x = 1; int y = 2; int z = 0; z =
..
我发现很多关于这个阴影空间的话题,但我没有找到答案,所以我的问题是: 我需要从堆栈指针中减去,在进入一个过程? 之前,我应该把过程参数推到堆栈减去“阴影空间”? 我已经反汇编我的代码,但我找不到逻辑。 p> 解决方案 阴影空间(有时也称为溢出空间 回想一下前4个参数在寄存器中传递。如果你进入调试器并检查一个线程的调用堆栈,你将看不到传递给函数的任何参数。存储在
..
计算机如何计算平方根? 我的意思是那里发生了什么!它如何处理它! 它使用一些数学方法,如牛顿的方法? 三角函数怎么办?几乎所有的数学函数。 在每种语言都有自己的方式的情况下,请让我们谈谈c ++。 解决方案 嵌入式CPU(例如x86和较大的ARM内核)具有直接计算平方根的硬件指令。支持这些指令的硬件实现是不同的,但通常是教科书逐位算法的变体(尽管不总是在基本二;基本四或十六也可以使
..
那么,至少有两种低级别的方法来确定给定的数字是否为偶数: 1 。if(num%2 == 0){/ * even * /} 2. if((num& 1)== 0){/ * even * /} 我认为第二个选项要更加优雅和有意义,这是我通常使用的。但它不仅是味道的问题;实际性能可能会有所不同:通常,逐位操作(例如,逻辑和这里)比mod(或div)操作更有效。当然,你可能会
..
有大约Git的索引文件的内部结构的任何文件?从不同的书,我知道这是二进制文件,它包含暂存文件的SHA值,我知道混帐'管道'命令有助于揭示内容编制索引... 但如何读?使用C#,例如通过自己的指数 我知道有这个功能的几种实现,所以这是可以研究的代码: 在Git的本身; 在编写基于C libgit2; 在GitSharp移植到C#从Java。 和所有这些选项有点复杂,因为需
..
我坚持用很简单的,但恼人的问题,不能在互联网上找到答案。希望你能够指出我的,我做了什么错。 我想从对象Git仓库进行解码。据 ProGit ,文件的名称和它的内容已经提交过程中放气。 我使用C#来读取SHA1表示对象到一个流,它充气,并转换成字节数组。下面是代码: 使用System.IO.Compression; 静态内部字节[] GetObjectBySha(字符串sto
..
在我的键盘钩子,每个按键得到指出,如果它被注入与否的标志。 http://msdn.microsoft.com/en-us/library /ms644967(VS.85).aspx 我蒸馏脱除lParam的一个KBDLLHOOKSTRUCT。我可以访问kbd.flags.XXX。我只是不知道如何将这种8bit的标志转换成如果(注射){... 键入条件,我知道如何使用。 如果你聪明的
..
我发现这个键盘钩子的代码,我想稍微修改一下我的目的:的 http://blogs.msdn.com/toub/archive/2006/05/03/589423.aspx 作为概述,我想让用户按一个键,说'E',并有键盘返回不同的性格,'Z',到任何应用程序处于焦点。 有关方法我改变现在看起来像: 私有静态的IntPtr HookCallback(INT nCode,IntPtr
..
我要创建一个程序,需要一个文件作为输入和放大器;输出的每一行的解密密码。该文件包含三行加密密码。我保证密码解密,以4字母的单词。鉴于我创建了信的的char []。我有一个问题,使用低级IO读取由行的文件行,把产生的密码在一个新的文件。任何与放大器;所有的建议是AP preciated! 下面是我的code迄今: 的#include< SYS / types.h中> #包括LT&;
..
我目前正在写一个程序,将能够创造稳定的TCP连接,并有超过ISN号码完全控制。我用C写,我在那里我认识非常有限已经达到极限了点,我想知道是否有这样做的更好的方法。 我试过手动构建头,采用原始套接字没有内核的干扰,这是一个挑战发送和接收数据包。 因此,无论语言,有什么事你看是操纵ISN的最有效和最简单的方法是什么? 解决方案 那么,ISN是随机的方式prevent ISN pered
..
我看了不同的反应,以检测堆栈增长检测的问题,我的理解是,在现代建筑,堆栈可能随机增长,可能会创建了堆,等等。 然而,在这个经典面试问题,我想了解的为什么的人用一个函数调用,而不是在同一个函数比较2的局部变量。我认为必须有这样做的,但不是一个C /低水平开发[Java的:)一些特别的原因,我只是猜测。 下面是code我尝试: 无效子(INT *一){ INT B: INT℃;
..
据我所知在C最小单位是一个字节。哪里该约束从何而来? CPU? 例如,我怎么能写轻咬或一个位到一个文件? 解决方案 不,你不能......文件以字节为单位组织的,它是最小的一块数据可以保存。 和,事实上,这1个字节将占据超过1个字节的空间,在一般。根据不同的操作系统,系统文件类型,等等,你都保存为文件将使用至少一个块。和块的大小根据你使用的文件系统的不同而不同。然后,这个1位将被写为1
..
如果我运行一个程序,就像 的#include<&stdio.h中GT; INT主(INT ARGC,CHAR *的argv []的char * ENV []){ 的printf(“我的引用在%P,%P,%P \\ N”,&安培; ARGC,&安培; argv的,和放大器; ENV); } 我们可以看到,这些区域实际上是在栈。 但是,还有什么呢?如果我们的Linux 3.5.3跑过所
..
我是一个“高层次”的脚本的家伙。我所有的code是基于类的PHP或JavaScript。但是,我想知道是否有任何形式的有益间preTER项目“低层次”的编译语言如C或C ++(奇怪的冠冕堂皇的吧?)。 这一切到来的时候,我偶然发现了 http://g-wan.com/ 并深深着迷的事实,你可以设置C code到作为服务器脚本运行。然而,该项目几乎是无用的,因为它是由一个人跑是闭源。 那么,还有
..
我现在面临q相当棘手的问题。我试图让指向同一物理内存的2虚拟内存区域。关键是要对每个内存区域不同的页面保护参数。 在这个论坛上,用户似乎有一个解决方案,但它似乎有点哈克,它是pretty清楚,更好的东西可以做performancewise:
..
我感兴趣的是写一个非常简约的编译器。 我想写一个小软件(在C / C ++),满足以下标准: 在ELF格式输出(* nix中) 输入是一个文本文件 类似C的语法和句法 任何链接 没有preprocessor 很小(最大1-2 KLOC) 语言特点: 本地数据类型:CHAR,INT和彩车 阵列(所有本地数据类型) 变量 控制结构(if-else语句) 功能
..
我想通过标准输入从用户获取文件名,打开用的open()文件并将其分配给一个文件描述符,然后打印文件内容到标准输出。这是我的code,并且它不能正常工作。 问题: 的的printf(“请输入文件名”);声明永远不会显示出来 它永远不会打开文件;而不是不管用户输入被打印在屏幕上,然后在打印的“没有这样的文件或目录”错误信息并退出程序 在终端的程序存在后,我看到“输入文件名”打印前提示
..
我要找到低级别的C / C ++的API,相当于在Linux系统上“写”,即没有一个缓冲区。有一? 缓冲I / O,如FREAD,FWRITE不是我想要的。 解决方案 看的与FILE_FLAG_NO_BUFFERING选项的CreateFile
..
我不希望优化什么,我发誓,我只想问这个问题是出于好奇。 我知道,在大多数硬件上有位移(如 SHL , SHR )的集合命令,这是一个单一的命令。但它的问题(纳秒的角度来看,还是CPU-圆通明智的),你有多少位转移。换句话说,要么是下列任何CPU上更快吗? X<< 1; 和 X<< 10; 和请不要恨我这个问题。 :) 解决方案 潜在取决于CPU。 然而,所
..
在MSVC ++编译器,可以使用 __ INT8 , __ INT16 , __ INT32 和类似的具有特定大小的整数。这是非常有用这就需要像自定义文件格式,硬件控制数据结构等。低层次的数据结构工作的应用程序 有没有类似的等价我可以GCC编译器?使用 解决方案 ISO标准C,从C99的标准,增加了标准头< stdint.h> 定义这些: uint8_t有 - 无符号的8
..