printf

取一个函数参数的地址是合法的吗?

在我的系统上,它似乎运行正常,并打印一个地址,但会一直是这样吗?例如.该参数可以通过寄存器传递,并且取其地址似乎不正确.编辑:看起来GCC将把寄存器传递的值放在堆栈中,然后再取其地址.解决方法是的,这是完全合法的–当然你不会从函数中返回该地址,因为在foo返回的时候,它是没有意义的.

在Objective-C中引用一个指针

任何人都可以解释一下,为什么我们不会将一个指针“Now”取消引用到NSDate实例,当我们实际想要从这个实例获取数据而不是地址时.我很困惑的事实是,以前的AaronHillegass“Objective-C编程”书中使用的NSLog的例子是:这段代码很清楚.我们想要地址,我们得到它.但是,当我们继续使用指针时,如何通过更改说明符来获取实际日期?

c – 在程序出口处的printf flush

我有兴趣知道当程序退出时printf()函数的flush如何工作.我们来看下面的代码:在这种情况下,printf()如何管理将其缓冲区刷新到stdout?我想这是平台依赖,所以让我们来看Linux.它可以使用gcc的__attribute__来实现,但是标准库将依赖于编译器.我认为这不是它的工作方式.任何解释或链接到文档是赞赏.谢谢.解决方法当调用exit()时,C运行时将注册atexit()处理程序来刷新标准缓冲区.看这个explanation.

open()不设置O_CLOEXEC标志

我尝试使用open()设置O_CLOEXEC标志,没有成功.考虑以下微测试:当使用内核版本2.6的linux上运行时,测试成功并打印“OK!”,但是失败了3.8或3.9内核.怎么了?解决方法决定将O_CLOEXEC标志暴露给fcntl是安全漏洞.内核3.6-rc7中的thiscommit进行了更改:换句话说,你不应该依赖O_CLOEXEC在第一位显示.

如何在C中优化这段代码

昨天,在一次访谈中,我被要求测试一个数字中的第5位以及下面我是如何做到的.但他随后要求我优化这段代码并不使用这个特殊的掩码.所以我的问题是我在这段代码中可以使用的其他掩码?)如果在例如外围寄存器中存在某些复杂的位模式,则这是一种方便的技术.它也是O你可以将两者结合起来!

perl – system()返回的值是否与“$?”相同?

当我在Perl中执行system()调用时,我通常会根据perldocs检查返回代码.大部分时间$rc!=0对我来说已经足够了.最近我帮了两个人,在apache下运行.cgi脚本时遇到了系统()调用问题.我指示他们检查$rc并将它们链接到system()文档.然后我看得更近了,注意到文档并不是真的在谈论$rc,而是关于$?我感到有点尴尬,出现了以下问题:是否有区别:和或者,简而言之,$rc等于$?解决方法是的,system的回报值应等于$?是一个全局变量,它可能被其他动作所覆盖.从perldoc-v’$?

PCRE正则表达式(零)环境搭建

简介PCRE是一个用C语言编写的正则表达式函数库,专门解决C语言中使用正则表达式的问题。环境搭建首先要下载PCRE源码:PCRE下载链接里面有各个PCRE版本。我下载的是8.37版的。我是在windows的环境下使用vs2013对PCRE进行动态编译。需要调用PCRE时,只需要往工程里面添加pcre.h、pcre.dll和pcre.lib三个文件:这样就可以在C语言下使用正则表达式了。例程安装完成后,我不同正则表达式应该怎么编写,PCRE应该怎么使用,就啥折腾了一下,下面是代码,初步体验一下PCRE的作用