Articles of unix

使用fork / execvp和系统调用之间的区别

使用system()执行二进制文件和使用fork / execvp的组合有什么区别。 有没有安全/可移植性/性能差异?

我如何运行带有参数的cron作业并将结果传递给日志?

例: * * * * * /usr/bin/php /full/path/to/script.php arg1 arg2 > /full/path/to/logfile.log 该脚本运行并访问参数就好了,但结果从不会打印到logfile.log。 另外,我的logfile.log是chmod 777,所以我知道它有写权限。 你能修正我的语法吗?

如何testing你的Linux支持SSE2

其实我有两个问题: 是SSE2兼容性CPU问题或编译器问题? 如何检查你的CPU或编译器是否支持SSE2? 我正在使用GCC版本: gcc (GCC) 4.5.1 当我试图编译一个代码,它给了我这个错误: $ gcc -O3 -msse2 -fno-strict-aliasing -DHAVE_SSE2=1 -DMEXP=19937 -o test-sse2-M19937 test.c cc1: error: unrecognized command line option "-msse2" 而cpuinfo显示了这一点: processor : 0 vendor : GenuineIntel arch : IA-64 family : 32 model : 1 model name : Dual-Core Intel(R) Itanium(R) Processor 9140M revision : 1 archrev : 0 […]

Unix除了最后两个令牌之外,

我试图parsing特定目录中的文件名。 文件名格式为: token1_token2_token3_token(N-1)_token(N).sh 我需要使用分隔符'_'来剪切标记,除了最后两个标记之外,还需要使用string。 在上面的例子中输出应该是token1_token2_token3 。 令牌的数量不固定。 我已经试过用-f#- cut命令的选项来做,但没有find任何解决scheme。 有任何想法吗?

SIGHUP重新加载configuration

根据signal(7) , SIGHUP用于检测控制terminal的挂断或控制过程的死亡。 但是,我遇到了很多OSS守护进程(服务), SIGHUP用来启动重新加载configuration。 这里有几个例子: hostapd , sshd , snort等 这是一个标准(或普遍接受)的方式来实现重新加载? 如果没有,build议什么?

从Unix上的文件句柄创build一个硬链接?

如果我有一个打开文件的句柄,是否有可能创build一个硬链接到该文件后,所有的引用已经从文件系统中删除? 例如,像这样的东西: fd = fopen("/tmp/foo", "w"); unlink("/tmp/foo"); fwrite(fd, "Hello, world!\n"); create_link_from_fd(fd, "/tmp/hello"); fclose(fd); 具体来说,我想这样做,以便我可以安全地写入大型数据文件,然后将它们primefaces地移动到原位,而不必担心自己清理后,如果我的程序在写入文件中被杀死。

Autoconf检查struct flock

fcntl()使用struct flock结构来定义和检查文件locking。 不幸的是,在不同的Unix系统中,这个结构中的字段顺序不同。 有谁知道如何用autoconf检查它,或者至less检查结构是否是特定的格式(例如问题是 – 结构格式是否与Linux格式匹配)?

在Unix连接操作中填充空字段

我有两个文件,我想根据第一列进行联合操作: FILE1.TXT foo 1 bar 2 qux 3 FILE2.TXT foo x qux y boo z 我希望得到的结果是这样的: foo 1 x bar 2 – qux 3 y boo – z 其中列1的空字段用“ – ”填充。 但是为什么这个连接命令不能像我预期的那样工作? $ join -a1 -a2 -e"-" file1.txt file2.txt 什么是正确的方法来做到这一点?

使用sed来匹配模式并从行中删除到文件的末尾

我试图从pipe道input和/或文件中匹配一个模式,然后从匹配的行中移除到文件末尾。 我到处寻找,但似乎无法find一个适合我的需求的expression。 下面的expression式允许我删除到stream的开头,包括匹配的模式: sed -e '1,/Files:/d' 给出一些样本数据: Blah blah blah Foobar foo foo Files: somefiles.tar.gz 1 2 3 somefiles.tar.gz 1 2 3 —–THIS STUFF IS USELESS—– BLEH BLEH BLEH BLEH BLEH BLEH 运行上面的expression式会产生: Files: somefiles.tar.gz 1 2 3 somefiles.tar.gz 1 2 3 —–THIS STUFF IS USELESS—– BLEH BLEH BLEH BLEH BLEH BLEH 我想达到类似的效果,但方向相反。 使用从前面的expression式的输出,我想从—–THIS STUFF […]

当列K空AWK / Perl时提取行

我有这样的数据: foo 78 xxx bar yyy qux 99 zzz xuq xyz 他们是制表符分隔。 我怎样才能提取第2列是空的行,yielding bar yyy xuq xyz 我试过这个,但似乎没有工作: awk '$2==""' myfile.txt