会员
众包
新闻
博问
闪存
赞助商
HarmonyOS
Chat2DB
所有博客
当前博客
我的博客
我的园子
账号设置
会员中心
简洁模式
...
退出登录
注册
登录
Harley_Quinn
博客园
首页
新随笔
联系
管理
订阅
上一页
1
2
3
4
5
6
7
8
下一页
2017年7月16日
理解C/C++中const char*、char* const、const char* const、char* const*等等
摘要: 先说些题外话,今天学习execve(2)的使用,由于书上代码使用的是C89标准,所以下面这种代码都被我修改了 也就是在char前面加个const,因为"aaa"、"bbb"、"cc"都是字符串字面值(string literal),在C++标准中string literal只能转换成const ch
阅读全文
posted @ 2017-07-16 11:53 Harley_Quinn
阅读(7106)
评论(2)
推荐(2)
2017年7月12日
waitpid()设置WNOHANG位(非阻塞模式)判断子进程的状态是否有所改变
摘要: 参考《Linux/Unix系统编程手册》26.1.5,对于系统调用waitid() 若在option中设置WNOHANG位,与那么该系统调用就是非阻塞的,也就是说会立刻返回而不是等待子进程的状态发生变化。 如果子进程的状态(正在运行or正常退出or被信号终止or被信号停止)发生变化,则会把状态具体信
阅读全文
posted @ 2017-07-12 20:40 Harley_Quinn
阅读(9891)
评论(0)
推荐(1)
2017年6月26日
写动态库时遇到了symbol lookup error问题
摘要: 之前写TLPI上的代码一直是手动进行错误处理,感觉代码冗余量很大,最后还是决定使用书上的tlph_hdr.h,顺便回顾下动态库的创建/使用。 参考很久之前的一篇博客 linux上静态库和动态库的编译和使用 但是感觉这篇博客写了后我一直没真正用过动态库,于是花了些时间复习下,结果倒好,一直出问题。 f
阅读全文
posted @ 2017-06-26 12:53 Harley_Quinn
阅读(13878)
评论(0)
推荐(0)
2017年6月8日
CAsyncSocket只传输了一部分数据(UDP),后面是乱码
摘要: 上述代码是忽略了错误处理后的代码,其中Dlg类的OnReceive方法是给CAsyncSocket的派生类的OnReceive方法调用的(在此之前派生类保存了Dlg类的指针)。 由于是UDP套接字,所以不存在粘包问题,SendTo和RecvFrom的返回值是一样的(说明发送和接收的数据大小一样),那
阅读全文
posted @ 2017-06-08 20:59 Harley_Quinn
阅读(793)
评论(0)
推荐(0)
2017年5月6日
访问进程环境变量environ时的一个坑
摘要: 在unistd.h中定义了变量char **environ;来表示当前所有环境变量,一般来说访问特定环境变量可以用getenv,但是想遍历所有环境变量就得使用environ。 即在程序内全局声明extern char **environ;当然设定main函数第3个参数也可以,不过不推荐,因为ISO
阅读全文
posted @ 2017-05-06 20:12 Harley_Quinn
阅读(680)
评论(0)
推荐(0)
2017年4月26日
C语言(C99标准)在结构体的初始化上与C++的区别
摘要: C++中由于有构造函数的概念,所以很多时候初始化工作能够很方便地进行,而且由于C++标准库中有很多实用类(往往是类模板),现代C++能十分容易地编写。 比如现在要构造一个类Object,包含两个字段,一个为整型,一个为字符串。C++的做法会像下面这样 这样的代码简洁、安全,C++通过析构函数来实现资
阅读全文
posted @ 2017-04-26 04:49 Harley_Quinn
阅读(6169)
评论(0)
推荐(0)
2017年4月21日
从C++Primer某习题出发,谈谈C语言标准I/O的缓存问题
摘要: 刚看完信号那章,觉得处理信号时的sigsetjmp/siglongjmp似乎跟异常的跳出很像,于是想去复习C++异常,然后发现了对I/O没有充分理解的问题。 题目是C++ Primer 5.6.3节的练习5.25,描述如下: 1、从标准输入读取2个整数, 输出第1个整数除以第2个整数的结果。 2、如
阅读全文
posted @ 2017-04-21 04:17 Harley_Quinn
阅读(505)
评论(0)
推荐(0)
2017年4月18日
将socket程序从linux移植到windows上
摘要: 今天突然想试下纯socket编程在两个系统上代码重合量有多大,只要不使用VC自定义的宏(比如SOCKET、SOCKADDR等等)感觉代码重合量挺大的。 比如最简单的TCP客户端和服务端对话,在VC中用int取代SOCKET宏,用struct sockaddr_in取代SOCKADDR_IN宏。 然后
阅读全文
posted @ 2017-04-18 22:55 Harley_Quinn
阅读(1923)
评论(0)
推荐(0)
2017年4月14日
使用sigaction来取代signal作为信号处理器函数
摘要: 早期ISO C提供了像这样的函数来支持自定义信号处理 但是由于标准库并不涉及系统层次,所以很多细节方面都是未定义的,比如在执行某信号(下文均以SIGINT为例)的处理器函数时,是否阻塞该信号? 给出一段代码(均忽略了对系统调用的错误处理) 这段代码的执行结果是不确定的,参考APUE,早期版本sign
阅读全文
posted @ 2017-04-14 21:56 Harley_Quinn
阅读(859)
评论(0)
推荐(0)
2017年4月7日
模拟Linux修改实际、有效和保存设置标识
摘要: 就是模拟setuid seteuid setreuid setresuid,感觉代码比书上大段的文字好记,就写成代码形式了。 main函数是TLPI第9章习题第1道的运行结果,然后模拟了一遍功能,后面几道也很简单就能做出来了。以后忘记的话看遍代码就能很快记起来了。
阅读全文
posted @ 2017-04-07 02:39 Harley_Quinn
阅读(418)
评论(0)
推荐(0)
上一页
1
2
3
4
5
6
7
8
下一页
公告