Tag: unix

stdout线程安全在Linux上的C?

在Linux上使用printf线程安全写入标准输出? 那么使用底层write命令呢?

sed中的环境variablesreplace

如果我从脚本运行这些命令: #my.sh PWD=bla sed 's/xxx/'$PWD'/' … $ ./my.sh xxx bla 没事。 但是,如果我运行: #my.sh sed 's/xxx/'$PWD'/' … $ ./my.sh $ sed: -e expression #1, char 8: Unknown option to `s' 我在教程中看到,要从shell中replace环境variables,你需要停止,并且'out quote' $varname部分,这样它就不会被直接replace,这就是我所做的,只有当variables被定义之前。 我怎样才能让sed识别$var作为一个环境variables,因为它是在shell中定义的?

为什么这个程序打印“叉”4次?

为什么这个程序打印“叉”4次? #include <stdio.h> #include <unistd.h> int main(void) { fork() && (fork() || fork()); printf("forked!\n"); return 0; }

我怎样才能删除Unix中的文件中的重复行?

有没有办法在Unix中删除文件中的重复行? 我可以用sort -u和uniq命令来完成。 但我想用sed或awk 。 那可能吗?

为什么1/1/1970是“纪元时间”?

为什么是 1970年1月1日00:00:00 考虑了时代 ?

如何获得C程序中的当前目录?

我正在做一个C程序,我需要从程序启动的目录。 该程序是为UNIX计算机编写的。 我一直在看opendir()和telldir() ,但是telldir()返回一个off_t (long int) ,所以它真的帮不了我。 我怎样才能得到一个string(字符数组)的当前path?

pipe道到三通时,强制标准输出缓冲

通常, stdout是行缓冲的。 换句话说,只要你的printf参数以一个换行符结束,你可以期望行被立即打印。 这在使用pipe道redirect到tee时似乎不成立。 我有一个C ++程序, a输出string,总是\n terminated,到stdout 。 当它自己运行( ./a )时,正如所期望的那样,所有东西都可以正确打印。 但是,如果我将它input到tee ( ./a | tee output.txt )中,它将不会打印任何东西,直到退出为止,这会破坏使用tee的目的。 我知道我可以通过在C ++程序中的每个打印操作之后添加一个fflush(stdout)来修复它。 但是,有没有更简单,更简单的方法? 是否有一个命令我可以运行,例如,即使在使用pipe道时强迫stdout被行缓冲?

git-upload-pack:在克隆远程Git仓库时找不到命令

我一直在使用git来保持项目的两个副本同步,一个是我的本地框,另一个是testing服务器。 这是使用sshlogin到远程开发服务器时发生的问题; git clone me@me.mydevbox.com:/home/chris/myproject Initialized empty Git repository in /tmp/myproject/.git/ Password: bash: git-upload-pack: command not found fatal: The remote end hung up unexpectedly fetch-pack from 'me@me.mydevbox.com:/home/chris/myproject' failed. (文件名已经改变,以保护有罪…!) 这两个盒子都运行Solaris 10 AMD。 我已经做了一些挖掘,如果我添加–upload-pack=$(which git-upload-pack)该命令的作品,(并certificate$PATH包含path'git上传包'按照RTFM解决scheme)但这真的很烦人,再加上“混帐推”不起作用,因为我不认为有一个–unpack=选项。 顺便说一下,所有的git命令都可以在我的本地机器上正常工作,它与安装在/usr/local/bin NFS挂载点上的软件版本(1.5.4.2)相同。 任何人都可以帮忙吗?

什么是文件描述符,用简单的术语来解释?

与维基百科相比,什么是文件描述符更简单的描述? 他们为什么要求? 比如,以shell进程为例,它如何应用? 一个进程表是否包含多个文件描述符? 如果是,为什么?

Java Process的常驻内存使用量(RSS)不断增长

我们最近对我们的生产系统的观察告诉我们,我们的Java容器的常驻内存使用量增长了。 针对这个问题,我们做了一些调查,理解为什么java进程比堆栈+线程栈+共享对象+代码caching+等消耗更多的内存,使用一些本地工具,如pmap。 因此,我们发现一些由本地进程(可能是使用malloc / mmap)分配的64M内存块(成对): 0000000000400000 4K rx– /usr/java/jdk1.7.0_17/bin/java 0000000000600000 4K rw— /usr/java/jdk1.7.0_17/bin/java 0000000001d39000 4108K rw— [ anon ] 0000000710000000 96000K rw— [ anon ] 0000000715dc0000 39104K —– [ anon ] 00000007183f0000 127040K rw— [ anon ] 0000000720000000 3670016K rw— [ anon ] 00007fe930000000 62876K rw— [ anon ] 00007fe933d67000 2660K —– [ anon ] […]