- 在Unix命令行下,如果要处理的文件名具有命令选项一样的"面孔",那要小心了,因为命令可能会将其认为是一个命令选项,要阻止命令产生这种误
会,需要这样处理:在文件名前一个命令选项位置处输入-(两个连字符)。比如,假设现在有一个名为-c的文件,要用cat显示这个文件,常规的方式:
cat -c
是不行的,cat会报错说:-c是一个无效选项。正确的做法是这样:
cat -- -c
如此,则cat知道-之后的命令行参数是一个文件名,而不是命令行选项。
简单来说,--的作用就是告诉命令,下面命令行参数不是选项!
- 在uCLinux-bf561中,msync()系统调用只实现共享内存页面的同步,但是没有对cache进行操作。
- uCLinux提供了三种内存分配器:slab,slob,slub。slab是最初实现,是从Solaris借鉴过来的;slob针对嵌入式系统;slub面向NUMA架构。
- 在C/C++中,变量名命名的惯例是:双下划线开头或者单下划线开头跟大写字母的保留给编译器实现;单下划线跟非大写字母及下划线的保留给标准库
的实现用。前者比如 __declspec,__thread,__builtin_const_p,后者比如 _mkdir,_strupr,
_strdup。(来源于水木清华BBS)
- 可以通过库函数system()运行脚本,比如像下面这样:
system("./verify_mypi.py");
通过execl()系统调用也可以,比如像下面这样:
execl("./verify_mypi.py", "./verify_mypi.py", NULL);
- 在Linux下,tcpdump能够捕获回环接口lo上的数据包传输,这对于调试单机上的网络程序非常方便。但在Windows下,tcpdump对应的winpcap似乎却不能捕获回环接口上的数据包。
- 在Linux下,显示和更改网卡设置的工具是ethtool。比如,可以用它来更改网卡MAC地址,设置双工/半双工工作方式,自动协商,选择10M/100M/1000M速率,等等。
- 在Linux下,可以用watch命令查看一个命令重复执行的结果
struct outer {
struct inner {
/* whatever */
} inner;
} outer;
但在嵌套中不能使用typedef,比如下面这样是不行的:
typedef struct outer {
float a;
typedef struct inner {
float b;
} INNER;
INNER inner;
} OUTER;
- 在Python的正则表达式中,search和match是两个不同的操作:match要求必须从string的起始位置开始匹配,而search则允许从string中的任意位置开始匹配。(注:这个问题之前已经记录过)
- 在vim中,命令模式下,把光标放在某个单词上,按*将向后搜索光标下的单词;按下#将向前搜索光标下的单词。
- 在Linux中可以通过UNIX域套接口在进程之间传递打开的文件描述符。采用这种方案在进程之间传递打开的文件描述符时,通常要用到下面这些函数和系统调用:socketpair(2),sendmsg(2),recvmsg(2),cmsg(3)。
阅读(665) | 评论(0) | 转发(0) |