前几天一个程序老是出现段错误,最后实在找不到地方,用gdb单步,发现问题出现在一个回调函数的pthread_cancel中。这个问题就奇怪了。《Unix系统编程》上说了pthread_cancel没有定义必须检测的错误,而且,当ptherad_cancel(pthread_t thread)时,若thread对应的线程不存在,只是返回ESRCH而已。但是问题是,这里就是因为程序第一次执行,除了主线程外,没有其他线程存在,而且因为这个thread变量是全局变量,应该是被自动初始化为零的。也就是说pthread_cancel(0),会引起段错误。
Linux
Linux的socket的奇怪问题
在Linux下使用一个TCP Socket进行Listen的 … 阅读更多
终于搞定无线上网共享
有两台笔记本,但是只有一条电话线可以通过ADSL上网,感觉专门买个路由器似乎很浪费。而两个笔记本除了内置以太网卡外,还都有一个Intel 3945ABG的无线网卡,就准备用两个笔记本的无线网卡直接连成ad-hoc网络,以达到到共享Internet连接和资料的目的。两个笔记本都装的是Ubuntu 7.10,本来如:https://help.ubuntu.com/community/WifiDocs/Adhoc所言,可以用network-manager直接创建ad-hoc网络,但是很不幸,这个方法实际行不通。至于为什么行不通,我依然不知道原因。
关于sudo的小问题
这两天一直在想办法共享上网。这其中有关键的一个环节就是在用iptables来作nat,Ubuntu默认是不转发的。所以就要先改/proc/sys/net/ipv4/ip_forward的内容,把它改成’1’。但是用echo ‘1’ > /proc/sys/net/ipv4/ip_forward也不行,用sudo echo ‘1’ > /proc/sys/net/ipv4/ip_forward,也不行。
解决Intel 82562GT网卡问题
回家后就遇到一个很郁闷的问题:一直无法在Linux下拨号,一 … 阅读更多
Linux下类似DOS中的getch()
前段时间写BF解释器,中有一个地方需要读入一个字符直接返回,类似于DOS下在TC中编程时常用的getch()函数。
但是很不幸,Linux下的getch()不是这个意思,后来在网上搜索,找到一个解决方案。
release前的疯狂
ubuntu gutsy到18日就要release了,这两天 … 阅读更多