Articles of GNU

将毫秒转换为timespec – GNU移植

我想把毫秒转换成GNU(GCC)linux的timespec结构。 我已经尝试过下面的代码。 timespec GetTimeSpecValue(unsigned long milisec) { struct timespec req; //long sec = (milisecondtime /1000); time_t sec = (time_t)(milisec/1000); req->tv_sec = sec; req->tv_nsec = 0; return req; } 运行这个代码给我下面的错误。 在'GetTimeSpecValue'之前预期'=',',',';','asm'或'__attribute__' 我也在代码中包含time.h文件。

Windows相当于Linux“屏幕”还是另一种select?

我正在寻找一种方法来控制Windows环境中的程序。 我宁愿它有点类似于Linux软件的“ screen ”。 我search的原因是我需要用一个标识符启动一个程序(在Windows上),所以我以后将能够closures该特定程序,而不closures其他任何东西 – 即使实际的程序(.exe文件)正在运行多次。 那么反正我能“命名”呢? 我现在在Linux上使用以下内容: $ screen <params> <id> ./softwareprogram 然后我知道我总是可以find它的ID 🙂 这是一个closures或启动第三方程序的外部程序。 我的程序是用C ++编写的,如果有什么区别的话。 编辑:我不能以任何方式不select我自己的ID? 像启动具有特定名称的程序一样? 另外我怎么通过提供一个名字来杀死进程呢?

每个GNU / Linux发行版都有Python吗?

我想知道是否是预先安装的每个G / L分布上的Python。 为什么它在GNU / Linux上非常stream行,而不是在Windows上呢?

无法在R(在我的Linux机器上)中安装脱字符包

在尝试在R中安装脱字符号包时遇到以下错误。 g++: error: /tmp/Rtmp2Tos7n/R.INSTALL2e6e30153a74/nloptr/nlopt-2.4.2/lib/libnlopt_cxx.a: No such file or directory make: *** [nloptr.so] Error 1 ERROR: compilation failed for package 'nloptr' * removing '/rmt/csfiles/pgrads/mava290/R/x86_64-suse-linux-gnu-library/3.1/nloptr' Warning in install.packages : installation of package 'nloptr' had non-zero exit status ERROR: dependency 'nloptr' is not available for package 'lme4' * removing '/rmt/csfiles/pgrads/mava290/R/x86_64-suse-linux-gnu-library/3.1/lme4' Warning in install.packages : installation of package 'lme4' […]

我将使用哪种GNU / Linux命令行工具来执行search和replace文件?

我将使用哪种GNU / Linux命令行工具来执行search和replace文件? search文本和replace能否以正则expression式格式指定?

Bash数组和否定的下标,是或否?

GNU bash手册告诉我 如果使用语法分配了任何variables,则会自动创build索引数组 name[subscript]=value 下标被视为必须计算为数字的算术expression式。 如果下标的计算结果为小于零的数字,则将其用作大于数组最大索引的偏移量(因此,下标-1表示数组的最后一个元素)。 所以我想我会试一试,得到以下结果: $ muh=(1 4 'a' 'bleh' 2) $ echo $muh 1 $ echo ${muh[*]} 1 4 a bleh 2 # so far so good so now I'll try a negative … $ echo ${muh[-1]} -bash: muh: bad array subscript # didn't go as planned! 我做错了什么,或者网站错了,或者是与在CentOS下运行的bash不同的gnu bash? 谢谢!

LD_LIBRARY_PATH似乎不起作用

我试图编译一个testing文件: gcc -o test test.c -lg2c 但我得到的错误: /usr/bin/ld: cannot find -lg2c 如果我使用: gcc -o test test.c -L/usr/lib/gcc/x86_64-redhat-linux/3.4.6 -lg2c 那么它工作正常。 所以我添加了这样的path: LD_LIBRARY_PATH=/usr/lib/gcc/x86_64-redhat-linux/3.4.6:$LD_LIBRARY_PATH 当我使用$LD_LIBRARY_PATH它在那里列出,但是: gcc -o test test.c -lg2c 仍然不起作用,它给出了同样的错误,我不明白为什么。 我正在使用CentOS(2.6.32-279.9.1.el6.x86_64),任何帮助将不胜感激。 编辑 :编译器版本: rpm -qa | grep gcc gcc-4.4.6-4.el6.x86_64 compat-gcc-34-g77-3.4.6-19.el6.x86_64 libgcc-4.4.6-4.el6.x86_64 compat-gcc-34-3.4.6-19.el6.x86_64 gcc-gfortran-4.4.6-4.el6.x86_64 libgcc-4.4.6-4.el6.i686 gcc-c++-4.4.6-4.el6.x86_64 编辑 :我尝试使用LIBRARY_PATH而现在我得到一个不同的错误: gcc: spec failure: unrecognized spec option 'M' 我不知道这是什么意思。

为相关文件中的新版本提供版本号(文档)

我会有兴趣知道你在那里如何处理新版本问题的版本号。 如何处理相关文件(如手册页等)中的版本号 该软件是用gnu工具链构build的,所以autoconf,automake等等可用于应用程序的版本号。 这样的信息可以被重复使用。 git被用作vcs。 一种可能性是在Makefile.am中引入一个额外的新目标,该目标执行sed / awk来replace所有关联文件中的版本号和date。 这个目标可以在新版本开发的开始(分支之后)被调用一次。 然后,项目可以build立正确的信息时,人们会做项目的git克隆或释放tarball完成。 当然,开始开发新版本时,必须记得运行这个目标。 另一个select是用dist钩子来执行sed / awkreplace。但是这会让项目的git仓库处于一种状态,没有正确的版本号码与关联的文件相关联。 我更喜欢做第一个解决scheme,因为它也logging了git历史中的正确版本号。 在进行sed / awkreplace时,你更喜欢使用“in-file”还是使用autoconf / automake工具中的模板in-file。 我看到两种方法的优点和缺点。 你如何处理关联文件的版本控制 。 在开发阶段开始的时候是否改变它们,在出货之前是否改变它们,你们是做replace还是更喜欢使用模板? 谢谢。

我怎样才能logging在GNU / Linux中使用磁盘的进程或内核活动?

在特定的Debian服务器上,iostat(以及类似的)报告正在进行的磁盘写入的意外高容量(以字节为单位)。 我无法确定哪个进程正在执行这些写操作。 两个有趣的点: 试图closures系统服务一次一个都无济于事。 磁盘活动保持相当稳定和意外高。 尽pipe写作,似乎并没有消耗更多的整个磁盘空间。 这两个都让我觉得这个写作可能是内核正在做的事情,但是我并没有交换,所以我不清楚Linux可能会写什么。 可以试试看: http://www.atcomputing.nl/Tools/atop/ 但是想避免修补我的内核。 任何想法如何跟踪这个?

如何使用mount(8)和fstab注册FUSE文件系统types?

我已经写了一个小型的基于FUSE的文件系统,现在唯一缺less的部分就是我想用fstab(5)来注册它,以便在系统启动时自动挂载它,并且/或者用mount /srv/virtual-db 。 我怎样才能做到这一点? 我知道,我可以从一些初始化脚本运行/usr/bin/vdbfs.py /srv/virtual-db ,但这并不完美。 我很抱歉,因为这可能不完全是一个编程问题,但它是高度相关的,因为打包和部署仍然是程序员的工作。