我经常看到术语“二进制”和“可执行文件”似乎可以互换用于同一事物。
不是用两个术语来描述完全相同的事物吗?编译后的可执行输出程序,我可以在终端上运行吗?
什么加强了我的假设,这两个东西应该是相同的bin,在应用程序的安装文件夹中提供一个文件夹(“bin”作为“binaries”的缩写)是一种常见的做法,以存储可执行文件用户可以运行的文件。
我已经阅读了ndisasm 手册中提到的二进制文件和可执行文件有什么区别?但问题和他们的答案更侧重于 Clang 和 ndasm 各自的环境。
我还在软件工程论坛上阅读了https://softwareengineering.stackexchange.com/questions/121224/what-are-binaries的问题和答案,但这里也没有区分可执行文件和二进制文件;只有一般的“二进制”一词可以指代:
但是,在Computing 中, Binary 指的是:
[来源:https : //softwareengineering.stackexchange.com/a/121235/349225]
其中,在编译过程的输出程序的上下文中,二进制文件与可执行文件相同,以及:
字的二进制文件被用作产生一组文件的编译后基本上对象代码运行的机器上。(和虚拟机/运行时在 Java/.NET 的情况下)
[来源:https : //softwareengineering.stackexchange.com/a/121234/349225 ]
在那里它被称为相同。
我不是c ++专家,但过去我曾多次将事情序列化.不幸的是,这次我正在尝试序列化一个包含std :: string的类,我理解这很像序列化指针.
我可以将类写出来并再次读回来.所有int字段都很好,但是std :: string字段给出了"地址越界"错误,大概是因为它指向不再存在的数据.
这有一个标准的解决方法吗?我不想回到char数组,但至少我知道它们在这种情况下工作.如有必要,我可以提供代码,但我希望我已经很好地解释了我的问题.
我通过将类转换为char*并使用fstream将其写入文件来进行序列化.阅读当然恰恰相反.
说我有一个二进制文件; 它包含正二进制数,但以小端编写为32位整数
我该如何阅读此文件?我现在有这个.
int main() {
FILE * fp;
char buffer[4];
int num = 0;
fp=fopen("file.txt","rb");
while ( fread(&buffer, 1, 4,fp) != 0) {
// I think buffer should be 32 bit integer I read,
// how can I let num equal to 32 bit little endian integer?
}
// Say I just want to get the sum of all these binary little endian integers,
// is there an another way to make read and get sum faster …Run Code Online (Sandbox Code Playgroud) 我正在开发一个包含许多小PDF文件的LateX软件包(http://www.openlilylib.org/lilyglyphs).目前只有几十个,但随着软件包及其用户群的增长,可能会有数百个(但不可能超过1000个).
PDF通常只有几KB大小,但我不知道是否在Git存储库中跟踪它们.这些文件可能随时更改,但可能不会经常更改.
通常会告诉一个人不要跟踪无法区分的二进制文件,但我也已经读过,这对于较小的文件和较小的整体音量并不重要.我认为最终PDF总数不会超过几MB.
该软件包将作为下载或通过我喜欢的Git存储库提供,因为使用该软件包很自然地导致贡献 ...
当前克隆Git存储库时,必须使用Python和LilyPond表示法软件重建pdf所以赌注相当高 - 这就是为什么我想在回购中直接使用pdf.
有什么想法吗?
编辑回答/评论:
pdf文件是从存储库中的源生成的,这就是我不愿意在Git中跟踪它们的原因.
但:
更新/更正时,pdf文件会发生变化.这不会经常发生,我认为跟踪源代码可以解决这个问题.但是,每当有新版本的LilyPond可用时,pdf也会发生变化,可能每两到四周一次.因此虽然源代码保持不变,但pdf将会正常更改 - 这是用Git跟踪它们的明显指标.
另一方面,我们正在讨论(可能)几百个文件,每个文件几KB,所以我不知道是否值得为这个问题烦恼.
最近我正在调查二进制文件损坏的原因.具体来说,我们有一个Android应用程序,本机部分可以在SD卡上读/写二进制文件.有时,二进制文件因未知原因而破坏.我们从不同的用户那里收集了一些这些文件,并发现了一些有趣的事实.
一种大多数的损坏是,二进制文件的前4096字节被擦除.当我对这些文件进行十六进制时,前4096个字节都是零.不超过4096或小于4096,但正好是4096字节.我认为这不是巧合.我知道4096字节是一页大小.但是缺乏经验,我无法弄清楚原因,更重要的是,我不知道如何为其他用户/设备避免这样的事情.
除此之外,在一些二进制文件的中间,还有一些连续的零段,它不应该存在.如果这不是我们程序的错误,是否有任何可能的原因可能与平台/设备内核相关,或者其他任何设备突然断电?
我希望经历过类似情况的人能给我一些提示/建议/解决方案等等.这让我很困惑.
非常感谢〜
在我的工作中,所有开发都使用Java技术,我们使用Nexus来管理我们的Maven存储库.但是对于一个新项目,构建需要dll和exe工件.是否可以将这些Windows二进制文件放入Nexus存储库?是否有一些插件可以使这更简单?我想做什么疯了?
如何在bash中创建具有后续二进制值的二进制文件?
喜欢:
$ hexdump testfile
0000000 0100 0302 0504 0706 0908 0b0a 0d0c 0f0e
0000010 1110 1312 1514 1716 1918 1b1a 1d1c 1f1e
0000020 2120 2322 2524 2726 2928 2b2a 2d2c 2f2e
0000030 ....
Run Code Online (Sandbox Code Playgroud)
在C中,我做:
fd = open("testfile", O_RDWR | O_CREAT);
for (i=0; i< CONTENT_SIZE; i++)
{
testBufOut[i] = i;
}
num_bytes_written = write(fd, testBufOut, CONTENT_SIZE);
close (fd);
Run Code Online (Sandbox Code Playgroud)
这就是我想要的:
#! /bin/bash
i=0
while [ $i -lt 256 ]; do
h=$(printf "%.2X\n" $i)
echo "$h"| xxd -r -p
i=$((i-1))
done
Run Code Online (Sandbox Code Playgroud) 我有一个小的github repo来转换MS Word文档,但大多数人只想要二进制文件.
我是不是该
src/ 和代码中bin/最新的目录.exe并期望人们下载整个批次?希望您已经听说过可以将JPG和Zip文件合并到一个文件中的简洁黑客,它是两种格式的有效(或至少可读)文件.好吧,我意识到,因为JPG最后会让任意东西和开头的ZIP,你可以在那里再添加一种格式 - 在中间.出于这个问题的目的,假设中间数据是保证不与JPG或ZIP格式冲突的任意二进制数据(意味着它不包含魔术zip头0x04034b50).插图:
0xFFD8 <- start jpg data end -> 0xFFD9 ... ARBITRARY BINARY DATA ... 0x04034b50 <- start zip file ... EOF
Run Code Online (Sandbox Code Playgroud)
我这样抓了:
cat"mss_1600.jpg"filea fileb filea fileb filea fileb filea fileb filea fileb filea fileb filea fileb filea fileb filea fileb filea fileb filea fileb filea fileb filea fileb"null.bytes""randomzipfile.zip"> temp.zip
这将生成一个6,318 KB的文件.它没有在7-Zip中打开.但是,当我少了一个'双'时(因此代替13 filea和b's,12):
cat"mss_1600.jpg"filea fileb filea fileb filea fileb filea fileb filea fileb filea fileb filea fileb filea fileb filea fileb filea fileb filea fileb …
binaryfiles ×10
c++ ×3
c ×2
7zip ×1
android ×1
bash ×1
binary ×1
executable ×1
file-io ×1
git ×1
github ×1
hexdump ×1
jpeg ×1
linux ×1
nexus ×1
php ×1
repository ×1
terminology ×1
zip ×1