Questions tagged «binary»

2
无法在NixOS中执行二进制文件-没有此类文件或目录
我试图在运行NixOS的VM上安装当前的oracle jre。 现在发生以下情况: [michas@cc:~]$ tar xvzf jre-7u40-linux-x64.tar.gz |grep bin/java jre1.7.0_40/bin/javaws jre1.7.0_40/bin/java_vm jre1.7.0_40/bin/java [michas@cc:~]$ ls -l ./jre1.7.0_40/bin/java -rwxr-xr-x 1 michas nogroup 7750 Aug 27 09:17 ./jre1.7.0_40/bin/java [michas@cc:~]$ ./jre1.7.0_40/bin/java bash: ./jre1.7.0_40/bin/java: No such file or directory WTF?命名文件显然在那里。到底是怎么回事? 尝试进一步分析: [michas@cc:~]$ strace ./jre1.7.0_40/bin/java execve("./jre1.7.0_40/bin/java", ["./jre1.7.0_40/bin/java"], [/* 53 vars */]) = -1 ENOENT (No such …


1
二进制文件和库之间有什么区别?
我正在尝试了解文件系统层次结构标准。我已经查找了二进制文件和库,并且据我目前的理解: 二进制文件是二进制格式的计算机可读代码文件,它们直接用位控制CPU和处理器。 为了方便起见,库是可由各种程序使用的函数-例如,当您需要PHP Javascript中的模块时。 这种理解正确吗?如果是这样,为什么我们仍将库和二进制文件分开?有些库是二进制文件,对不对?还有一些二进制文件(cat,less,date,rm,cp等)被使用和重用,就好像它们是库一样。有人可以帮助解释它们的区别,并帮助我为这两个单词找到更好的定义吗?谢谢。
11 files  libraries  binary  fhs 

3
在执行期间修改二进制
我经常在开发过程中遇到这种情况,我在其中运行一个二进制文件,a.out在后台说,因为它需要很长时间。在这样做的同时,我对产生a.out并a.out再次编译的C代码进行了更改。到目前为止,我还没有遇到任何问题。正在运行的进程将a.out继续正常运行,不会崩溃,并且始终运行最初启动时的旧代码。 但是,a.out据说文件很大,可能相当于RAM的大小。在这种情况下会发生什么?并说它链接到共享对象文件,libblas.so如果我libblas.so在运行时进行修改怎么办?会发生什么? 我的主要问题是-操作系统是否保证当我运行时a.out,原始代码将始终按照原始二进制文件正常运行,而不管二进制.so文件或链接到的文件的大小如何,即使这些文件.o和.so文件在运行期间被修改运行? 我知道有一些问题可以解决类似的问题:https : //stackoverflow.com/questions/8506865/when-a-binary-file-runs-does-it-copy-its-entire-binary-data-into-memory -at-once 如果在执行过程中编辑脚本会怎样? 程序运行时如何进行实时更新? 哪些方法帮助我进一步了解了这一点,但我认为他们并没有确切地问我想要什么,这是执行期间修改二进制文件的后果的一般规则
10 linux  binary 

1
如何从一开始就跟随二进制文件(la“ tail -f”)?
是否可以从头开始遵循二进制文件la tail -f? 在某些情况下,这很有用,例如,如果我正在scp将文件发送到远程服务器,同时又想将其提供给另一个进程(是的,我知道我可以使用ssh+ cat技巧)。 据我从FM所读的内容,tail在编写时要考虑到文本文件。 是否有使用标准posix工具进行此类操作的简单方法?

3
可以使用xxd输出十六进制数字而不是字符串的二进制表示吗?
我想在命令行中从十六进制生成原始二进制数据包,以测试协议。我希望通过这种方式比编写应用程序更简单。 这是当前发生的情况: echo '0A' | xxd -b 0000000: 00110000 01000001 00001010 我想拥有的是: echo '0A' | xxd -b 0000000: 00001010 要么 echo '0A' | xxd -b 0000000: 01010000 由于我无法确定所需的耐力。我希望能够在必要时进行更改。这可以实现吗?

2
执行二进制文件:找不到文件
我知道那里也有类似的问题,但是我还没有找到解决方案,也没有确切的案例。该二进制文件是在Arch Linux上使用其GCC 4.7构建的。该软件包在构建系统上可以正常工作。以下命令在以下位置执行: Linux vbox-ubuntu 3.2.0-29-generic#46-Ubuntu SMP Fri Jul 27 17:03:23 UTC 2012 x86_64 x86_64 x86_64 GNU / Linux 有关文件位于此处。它是Linux 64位到Windows 64位交叉编译器。将其解压缩到~/一个~/mingw64包含所需内容的目录。 当我尝试运行时~/mingw64/x86_64-w64-mingw32/bin/as,我得到的是: bash: /home/ruben/mingw64/x86_64-w64-mingw32/bin/as: No such file or directory 跑步file ~/mingw64/x86_64-w64-mingw32/bin/as给我: /home/ruben/mingw64/x86_64-w64-mingw32/bin/as: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.32, BuildID[sha1]=0x0b8e50955e7919b76967bac042f49c5876804248, …


2
在图像上使用猫之后会产生什么?
假设有人创建了一个像这样的文件: touch myFile 您可以使用vim或其他内容在其中输入一些文本,然后将cat myFile其吐出到终端中。 现在,当我在任何图像上使用猫时会发生什么?说, cat myPNG.png 我只是一堆垃圾。它只是让我考虑该cat命令正在尝试执行的操作,以及所有这些“垃圾”来自何处。只是好奇。
9 files  binary  cat 

3
编辑包含'\ x00'字节的二进制流
仅使用shell工具,如何编辑包含NULL(0x00字符)的二进制流,并将0x00字符保留在输出流中? 编辑需要将指定位置的一个字符替换为另一个字符(在下面的示例中,用字符'|'代替),例如: dd ibs=1 skip=$offset count=$reglen status=none if=$ARQ | sed 's/./\|/2' | sed 's/./\|/5' #| more replacements.... 但是sed会在替换前删除所有'\ 0x00'字符。 编辑-使用@George Vasiliou测试演示我环境中的sed行为: $ echo -e "lineA\nlineB\nlineC" | tr '\n' '\0' | od -t x1 0000000 6c 69 6e 65 41 00 6c 69 6e 65 42 00 6c 69 6e 65 …
8 sed  binary 

3
grep如何确定文件是二进制文件?
我有一个很大的utf-8文本文件,经常使用来搜索grep。最近grep开始报告它是一个二进制文件。我可以继续使用搜索它grep -a,但是我想知道是什么更改决定了文件现在是二进制文件。 我有上个月的副本,该文件不再被检测为二进制文件,但是对diff他们来说不切实际,因为它们的差异超过20,000行。 file 将我的文件标识为 UTF-8 Unicode英文文本,行很长 如何找到字符/行/等。在我的文件中哪些触发了此更改? 类似的,非重复的问题19907涵盖了NUL的可能性,但grep -Pc '[\x00-\x1F]'说我没有NUL或任何其他ANSI控制特性。

2
为什么在二进制文件上使用cat会使终端混乱?
如果我cat正确理解手册: 连接文件并在标准输出上打印 cat将文件作为参数并将其打印在标准输出上。 我没有得到的是如果使用以下命令: cat img.png > copy.png 我将获得2个相同的png文件,如果我只是 cat img.png 我很有可能会弄乱我的终端并误解我键入的内容。 那怎么可能 二进制值仍然是二进制数据。为什么它不能简单地显示一系列0和1或这些二进制数据的ASCII解释或终端中的编码是什么? 是否可以通过cat打开包含奇怪字符的文本文件来实现此行为? 是否应该实现一种防止这种行为的机制,例如try {} catch {}语句?
8 terminal  cat  binary 

2
如何使用Bash在二进制文件中查找2个字节,增加它们的值并替换?
我试图在二进制文件中找到两个字节,然后增加这两个字节的值并将其替换为文件中的字节。这两个字节位于位置0x82-0x83上。现在,我已经使用此命令成功提取了这两个字节: #!/usr/bin/env bash BYTES=$(tail -c +131 "$1" | head -c 2) 这些字节的值是:1B 1F。我坚持: 如何将字节转换为整数?应该是6943十进制。 如何将二进制数据附加/回显到文件 如何在位置0x82-0x83的文件内写入增加的字节。我可以使用head -c 130 original.bin >> new_file.bin && magic_command_writing_bytes_to_file >> new_file.bin && tail -c +133 original.bin,但是必须有更好的方法。 我可以用PHP做到这一点,应该会更容易,但是我对如何在bash中做到这一点感兴趣。
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.