小编mus*_*afa的帖子

用于在Windows中比较2个二进制文件的工具

我需要一个工具来比较2个二进制文件.文件很大.我在互联网上找到的一些免费软件或试用工具不方便用于大文件.你能推荐我任何工具吗?

binary compare filecompare

128
推荐指数
6
解决办法
28万
查看次数

在bash中创建二进制文件

如何在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)

bash hexdump binaryfiles

12
推荐指数
2
解决办法
3万
查看次数

如何检查枚举变量是否有效?

我有一个枚举:

enum myenum{
  typeA,
  typeB,
  typeC
} myenum_t;
Run Code Online (Sandbox Code Playgroud)

然后,使用enum参数调用函数:

int myfunction(myenum_t param1)
{
  switch(param1)
  {
    case typeA:
    case typeB:
    case typeC:
      //do the work
      break;

    default:
      printf("Invalid parameter");
  }
  return 0;
}
Run Code Online (Sandbox Code Playgroud)

但是,随着myenum_t越来越多的价值观的增长,myfunction似乎并不那么优雅.

有没有更好的方法来检查枚举是否有效?

c enums

12
推荐指数
2
解决办法
2万
查看次数

11
推荐指数
2
解决办法
1万
查看次数

最小的FAT32分区

我需要用FAT32文件系统创建一个小分区图像(几MB).我在互联网上提出了一些关于FAT32分区的最小大小限制的矛盾信息.

当我mkfs在Linux中尝试将5MB分区作为FAT32时,我收到警告,因为它太小了.虽然,它写了一些东西.(我不确定它是否有效)当我尝试diskpart在Windows 中将5MB分区格式化为FAT32时,它就会失败.

FAT32分区有多小?

谢谢

linux windows filesystems fat32 disk-partitioning

9
推荐指数
1
解决办法
1万
查看次数

比较录音

我有5个录制的wav文件.我想将新传入的录音与这些文件进行比较,并确定它与哪个最相似.

在最终产品中,我需要在Linux上用C++实现它,但现在我在Matlab中进行实验.我很容易看到FFT图.但我不知道如何比较它们.

如何计算两个FFT图的相似度?

编辑:录音中只有语音.实际上,我正在努力确定一些电信公司的应答机的响应.这足以区分两个消息"此刻此人无法联系到"和"此号码不再使用"

linux audio matlab signal-processing fft

8
推荐指数
1
解决办法
2077
查看次数

使用C++在Windows中获取时区

我想同步Windows和Linux时钟.Windows获取其系统时钟(使用GetSystemTimeAsFileTime函数)并将其发送到Linux.然后,Linux相应地设置其时钟(使用settimeofday函数).

我还需要传输Windows的时区,并将其转换为Linux标准.如何在C++中获取Windows的时区?

祝福,穆斯塔法

c++ linux windows timezone

6
推荐指数
2
解决办法
1万
查看次数

如何在 CHM 文件中查找主题 ID

我想从我的 C# 项目中打开 CHM 文件。我想打开 CHM 文件的相关部分,因此我使用以下代码行

Help.ShowHelp(this, help_file, HelpNavigator.TopicId, topic_id);
Run Code Online (Sandbox Code Playgroud)

问题是,我没有 CHM 文件的来源,也不知道它的主题 ID。有没有办法获取这个CHM文件的主题ID?

c# chm

5
推荐指数
1
解决办法
5189
查看次数

一次铸造两次

在一个项目中我看到了以下行,我不明白两次投射的原因.

*((MY_STRUCT_T*)(void *)cp->down.common) = *(cp->dpr);
Run Code Online (Sandbox Code Playgroud)

两次铸造的原因是什么?为什么不直接投射到MY_STRUCT_T*?


添加更多细节:

typedef union download_s {
    MY_STRUCT_1_T *a1;
    MY_STRUCT_2_T *a2;
    void         *common;
} download_t;

typedef struct cp_s {
 ...
 MY_STRUCT_T *dpr;
 ...
} cp_t;
Run Code Online (Sandbox Code Playgroud)

c casting

5
推荐指数
1
解决办法
386
查看次数

Writing a struct into a stringstream in C++

I have some structs as:

struct dHeader
{
    uint8_t    blockID;
    uint32_t   blockLen;
    uint32_t   bodyNum;
};
struct dBody
{
    char       namestr[10];
    uint8_t    blk_version;
    uint32_t   reserved1;
}
Run Code Online (Sandbox Code Playgroud)

and I have a stringstream as:

std::stringstream Buffer(std::iostream::in | std::iostream::out);
Run Code Online (Sandbox Code Playgroud)

I want to write a dHdr and multiple dBody structs into Buffer with

Buffer << Hdr1;
Buffer << Body1;
Buffer << Body1;
Run Code Online (Sandbox Code Playgroud)

I get the error:

error: no match for 'operator<<' in 'Buffer << Hdr1'

If I try it with:

Buffer.write(reinterpret_cast<char*>(&Hdr1), sizeof(dbHdr1));
Buffer.write(reinterpret_cast<char*>(&Body1), sizeof(Body1));
Buffer.write(reinterpret_cast<char*>(&Body2), …
Run Code Online (Sandbox Code Playgroud)

c++ stringstream

3
推荐指数
1
解决办法
4408
查看次数