Articles of Linux操作系统

编译Win8 / Ubuntu上的Makefile行为有所不同?

我得到一个C代码,写在一些我想要移植到Windows的Linux Derivation中。 我对Makefile进行了一些修改,并使用了mingw32-make来编译它们。 生成的执行文件运行良好,直到我看到结果。 该程序用于进行一些数据分析,并应产生20至100之间的数字列表。对于示例数据,应该有大约48.442的3个数字。 但是,当我运行Windows的可执行文件时,我得到了3个数字大约292136359165898530000000000000000000000000000.000 然后,我安装了virtualbox,并尝试使用“make”作为console-command来运行原始的Makefile,但它抱怨说math库没有被请求(pow未定义等),尽pipe在每个gcc命令中都插入了-lm 。 windows的Makefile: COMPILER_OPT = -O3 all: extract_timestamps extract_timestamps: extract_timestamps.c collection.o filename_treatment.o basic_analysis.o read_lecroy_file.o read_tek_file.o stamp_handling.o treat_lecroy_file.o treat_tek_file.o save_timestamps.o injection_statistics.o calc_time_stamp.o peak_finding.o get_timestamps.o time_ext.h -lm gcc -lm -o extract_timestamps.exe basic_analysis.c calc_time_stamp.c collection.c extract_timestamps.c filename_treatment.c get_timestamps.c injection_statistics.c peak_finding.c read_lecroy_file.c read_tek_file.c save_timestamps.c stamp_handling.c treat_lecroy_file.c treat_tek_file.c $(COMPILER_OPT) get_timestamps.o: get_timestamps.c time_ext.h gcc $(COMPILER_OPT) […]

encryption/解密在两个不同的openssl版本之间不能正常工作

我已经下载并编译了openssl-1.1.0 。 我可以使用相同的openssl exeencryption和解密(就像这里 ) me@ubuntu:~/openssl-1.1.0$ LD_LIBRARY_PATH=. ./apps/openssl aes-256-cbc -a -salt -in file.txt -out file.txt.enc enter aes-256-cbc encryption password: 123 Verifying – enter aes-256-cbc encryption password: me@ubuntu:~/openssl-1.1.0$ LD_LIBRARY_PATH=. apps/openssl aes-256-cbc -a -d -in file.txt.enc -out file.txt.dec enter aes-256-cbc decryption password: 123 这个openssl使用: libcrypto.so.1.1, libssl.so.1.1 当我尝试使用安装在我的ubuntu上的openssl进行解密时,它使用: /lib/x86_64-linux-gnu/libssl.so.1.0.0, /lib/x86_64-linux-gnu/libcrypto.so.1.0.0 我收到一个错误: me@ubuntu:~/openssl-1.1.0$ openssl aes-256-cbc -a -d -in file.txt.enc […]

如何使用AWK合并两个文件?

文件1有5个字段ABCDE,字段A是一个整数值 文件2有3个字段AFG 文件1中的行数比文件2(20 ^ 6到5000)大很多, 文件1中A的所有条目出现在文件2中的字段A中 我喜欢把字段A中的两个文件合并,并携带F和G. 期望的输出是ABCDEFG 例 文件1 ABCDE 4050 S00001 31228 3286 0 4050 S00012 31227 4251 0 4049 S00001 28342 3021 1 4048 S00001 46578 4210 0 4048 S00113 31221 4250 0 4047 S00122 31225 4249 0 4046 S00344 31322 4000 1 文件2 AFG 4050 12.1 23.6 4049 14.4 47.8 4048 […]

strtok函数线程安全

我花了一些时间来debugging给出分段错误的程序。 这个bug是非常不确定的,而且是间歇性的,这很烦人。 我缩小了对strtok的呼吁。 我怀疑这是调用strtok拆分string在两个不同的线程导致分段错误。 我可以在两个不同的线程中调用strtok吗? 谢谢。

我需要什么来阅读使用Python的Microsoft Access数据库?

我如何访问Python中的Microsoft Access数据库? 用SQL? 我会优先考虑一个适用于Linux的解决scheme,但我也可以适应Windows。 我只需要读取权限。

CPU核心的rdtsc准确度

我从一个线程发送networking数据包,并在另一个CPU核心上运行的第二个线程上接收应答。 我的过程测量每个数据包发送和接收之间的时间(类似于ping)。 我正在使用rdtsc获得高分辨率,低开销的时间,这是我的实施所需要的。 所有测量看起来都可靠。 不过,我担心跨核心的rdtsc准确性,因为我一直在阅读一些文字,这意味着tsc在核心之间没有同步。 我在维基百科find了关于TSC的以下信息 持续的TSC行为确保了每个时钟节拍的持续时间是统一的,并且即使处理器内核改变了频率,也支持使用TSC作为挂钟定时器 。 这是所有英特尔处理器的架构行为。 尽pipe如此,我仍然担心跨核心的应计,这是我的问题 更多信息 我在一台Intel nehalem机器上运行我的程序。 操作系统是Linux。 所有内核都设置了“ constant_tsc ”cpu标志。

分叉之后,是否共享全局variables?

考虑这个简单的代码: int myvar = 0; int main() { if (fork()>0) { myvar++; } else { // father do nothing } } 当孩子增加myvar,是与父亲分享的价值(如pthread)?

Linux确保文件的内容在closures()后被刷新到光盘上?

当使用close()或fclose() (例如)closures文件时,Linux是否保证文件被写回(永久)光盘? 我的意思是,如果close()返回0,然后立即电源失败,以前写入的数据保证坚持,即是持久的? fsync()系统调用确实提供了这个保证。 closures一个文件也足够了吗? 目前我找不到任何使这种或那种索赔的东西。 问题2: 如果close()隐式做了一个fsync() ,有没有办法告诉它不?