Articles of Linux操作系统

在x86中将string定义为字节(db)和将string定义为字/双字(dw / dd)有什么区别?

我试图调查大会定义标签之间的差异,这里是一个例子 ALabel: db 'Testing' AAnotherLabel: dw 'Testing' 现在,让我加载到一个32位寄存器: mov eax, [ALabel] mov ebx, [AAnotherLabel] 经过gdb的调查,我发现eax和ebx的所有子寄存器都包含相同的值,请看这里: info register eax 0x64636261 //dcba info register ebx 0x64636261 //dcba 他们是一样的! 在Jeff Duntemann的书中(汇编语言使用Linux进行分步编程),他给出了一个单词和双字进入寄存器的例子,但由于某种原因加载了偏移量(即像这样的值的地址) DoubleString: dd 'Stop' mov edx, DoubleString 对edx内容的调查显示,它包含一个地址,可能是string中前四个字母的地址,与第一个地址相同,尽pipe我在这里进行了推测。 我想澄清在这里真正发生了什么,并且这个声明实际上是将string中第一个字母的地址加载到一个寄存器中: Fin: db 'Final' mov ecx, Fin

我怎样才能sorting在Linux Bash shell中的string数组?

例如,数组是 link2_pathname link1_pathname link3_pathname 我怎样才能得到像下面的数组。 link1_pathname link2_pathname link3_pathname 提前感谢!

什么是用户进程的有效地址空间? (OS X和Linux)

mmap系统调用文档说,如果出现以下情况,函数将失败: 指定了MAP_FIXED,并且addr参数不是页alignment的,或者所需地址空间的一部分驻留在用户进程的有效地址空间之外。 我无法在任何地方find说明什么是有效地图的文档。 (我有兴趣在OS X和Linux上执行此操作,理想情况下相同的地址对于这两个操作都是有效的)。

Path.startsWith在Linux上为Windows文件path返回false

为什么会这样? Path parent1 = Paths.get("/flugel/borf/noggin"); Path child1 = Paths.get("/flugel/borf/noggin/foo/bar/baz.jpg"); System.out.println("child1 startsWith parent1? " + child1.startsWith(parent1)); System.out.println(child1.getFileSystem()); System.out.println(parent1.getFileSystem()); Path parent2 = Paths.get("C:\\foo"); Path child2 = Paths.get("C:\\foo\\bar\\baz.jpg"); System.out.println("child2 startsWith parent2? " + child2.startsWith(parent2)); System.out.println(child2.getFileSystem()); System.out.println(parent2.getFileSystem()); 回报 child1 startsWith parent1? true sun.nio.fs.LinuxFileSystem@f5f2bb7 sun.nio.fs.LinuxFileSystem@f5f2bb7 child2 startsWith parent2? false sun.nio.fs.LinuxFileSystem@f5f2bb7 sun.nio.fs.LinuxFileSystem@f5f2bb7 我在Ubuntu上运行Java 8,但没有任何关于Path.startsWith的javadoc解释为什么发生这种情况。 两个文件path都不包含任何实际的文件。

如何在Linux中安装SSReflect和MathComp?

我已经在Linux(Ubuntu 17.04)中成功安装了Coq 8.6和CoqIDE。 但是,我不知道要继续添加SSReflect和MathComp到此安装。 我查过的所有参考资料对我来说似乎都很混乱。 有没有人有一个简单而简单的食谱呢? 我有安装opam。

用于Python脚本的桌面启动程序以错误的path启动程序(Linux)

我无法从Linux Mint 17.1 Cinnamon上创build的.desktop启动器启动python脚本。 问题是,脚本将在错误的path启动 – 即主文件夹,而不是它所在的目录。因此,它找不到其他文件夹中的其他重要文件,因此不起作用。 为了检查这种不当行为,我创build了一个简短的脚本来检查python脚本正在执行的文件夹: #!/usr/bin/env python import subprocess import time subprocess.call(["pwd"], shell=True) time.sleep(7) # to get a chance to read the output 从它自己的文件夹执行它给出的输出: /home/myusername/PythonProjects 我正在通过尼莫的菜单设置桌面启动器。 现在执行相同的脚本产生: /home/myusername 我不明白这个行为。 我怎么能创build一个工作桌面启动我的Python脚本?

具有multithreadingcurl请求的Segfault

我在这里遇到了一些C ++程序的麻烦。 基本上我已经为http请求写了一个简单的包装,可以一次执行多个请求。 工作绝对好,但是当我做httpS请求时,它在multithreading模式下随机崩溃。 我使用curl和posix线程。 Backtrace看起来像这样: ======= Backtrace: ========= /lib/x86_64-linux-gnu/libc.so.6(+0x80996)[0x7fea9046d996] /lib/x86_64-linux-gnu/libc.so.6(+0x82b80)[0x7fea9046fb80] /lib/x86_64-linux-gnu/libc.so.6(realloc+0xf2)[0x7fea90470ae2] /lib/x86_64-linux-gnu/libcrypto.so.1.0.0(CRYPTO_realloc+0x49)[0x7fea8f9c6169] /lib/x86_64-linux-gnu/libcrypto.so.1.0.0(lh_insert+0x101)[0x7fea8fa4bfb1] /lib/x86_64-linux-gnu/libcrypto.so.1.0.0(+0xe844e)[0x7fea8fa4e44e] /lib/x86_64-linux-gnu/libcrypto.so.1.0.0(ERR_get_state+0xde)[0x7fea8fa4eeee] /lib/x86_64-linux-gnu/libcrypto.so.1.0.0(ERR_clear_error+0x15)[0x7fea8fa4f065] /usr/lib/x86_64-linux-gnu/libcurl.so.4(+0x24e79)[0x7fea90f10e79] /usr/lib/x86_64-linux-gnu/libcurl.so.4(+0x39ea0)[0x7fea90f25ea0] /usr/lib/x86_64-linux-gnu/libcurl.so.4(+0xf8fd)[0x7fea90efb8fd] /usr/lib/x86_64-linux-gnu/libcurl.so.4(+0x219f5)[0x7fea90f0d9f5] /usr/lib/x86_64-linux-gnu/libcurl.so.4(+0x35538)[0x7fea90f21538] /usr/lib/x86_64-linux-gnu/libcurl.so.4(curl_multi_perform+0x91)[0x7fea90f21d31] /usr/lib/x86_64-linux-gnu/libcurl.so.4(curl_easy_perform+0x107)[0x7fea90f19457] ./exbot[0x40273a] /lib/x86_64-linux-gnu/libpthread.so.0(+0x7f6e)[0x7fea90cd6f6e] /lib/x86_64-linux-gnu/libc.so.6(clone+0x6d)[0x7fea904e79cd] 这可能是libcrypto中的一个错误? 我可以不知何故告诉curl不要使用libcrypto? 任何替代品? 它只使用httpS请求来启动文件,并且即使10000个同时http查询也能正常工作。 干杯,托马斯 只是为了完整我的代码: // simple wrapper for http requests #ifndef _REQUEST_H_ #define _REQUEST_H_ #include <curl/curl.h> #include <pthread.h> #include <string> #include <iostream> ////////////////////////////////// // MACROS ////////////////////////////////// […]

找不到png.h文件 – Linux

我试图在Linux的Ubuntu的运行。 当我键入让它说 rgb_image.cc:26:24: fatal error: libpng/png.h: No such file or directory #include <libpng/png.h> 然后我跟着这个来安装png.h. sudo install libpng-dev 但现在它告诉我 install: missing destination file operand after 'libpng-dev' 我该怎么办? 请帮忙,谢谢。

Vivado_hls 2014.4 Ubuntu 14.04 x64包含错误

我在Ubuntu 14.04 x64上运行Vivado HLS 2014.4(x64)。 一切工作在Vivado HLS 2012. Vivado HLS 2014.4 GUI和综合工作,但编译testing平台不。 我得到了这样的数千个错误: Building file: /home/nic30/vivado/tb_axis_test.cpp Invoking: GCC C++ Compiler g++ -DAESL_TB -D__llvm__ -D__kernel -D__global -Dglobal -Dlocal -D__local -Dconstant -D__constant -Dprivate -D__private -D__private -I/opt/Xilinx/Vivado_HLS/2014.4/include/ap_sysc -I/opt/Xilinx/Vivado_HLS/2014.4/lnx64/tools/systemc/include -I/home/nic30/vivado -I/opt/Xilinx/Vivado_HLS/2014.4/include -I/opt/Xilinx/Vivado_HLS/2014.4/lnx64/tools/auto_cc/include -I/opt/Xilinx/Vivado_HLS/2014.4/include/etc -O0 -g3 -Wall -c -fmessage-length=0 -MMD -MP -MF"testbench/tb_axis_test.d" -MT"testbench/tb_axis_test.d" -o "testbench/tb_axis_test.o" "/home/nic30/vivado/tb_axis_test.cpp" In file included from […]

如何通过SFTP将远程服务器上的LS的输出传输到本地文件系统?

我通过命令行通过SFTPlogin到远程服务器。 我所在的文件夹包含数十万个文件。 我需要在文本文件中获取这些文件的列表,以便我可以通过编程访问它们,因为没有一个PHP SFTP客户端能够返回如此庞大的文件列表。 当我在目录上运行ls (在SFTP会话中)时,文件列表最后显示大约需要20分钟。 我没有这个服务器上的写访问权限,所以我不能将输出传送到远程服务器上的一个文件。 我怎样才能输出到我的本地机器上的文本文件…或获取文件列表到我的本地机器一些其他方式?