小编Sto*_*ogy的帖子

如何从字符串中删除除 - 之外的所有特殊字符。和空间

我有一个字符串,我想删除除连字符、点和空格之外的所有特殊字符。

我在用filename.replaceAll("[^a-zA-Z0-9.-]","")。它适用于.空间,-但不适用于空间。

我应该添加什么才能使其也适用于太空?

java regex string

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

gdb:强制转换取决于编译的语言

我正在调试使用 GDB (arm-none-eabi-gdb) 在 Rust 中编译的程序。有一次,我想写入一个内存地址,如下所示:

(gdb) set *((int *) 0x24040000) = 0x0000CAFE
syntax error in expression, near `) 0x24040000) = 0x0000CAFE'.
Run Code Online (Sandbox Code Playgroud)

经过多次尝试,我发现我正在转换 C 风格,我必须将其转换为 Rust 风格,如下所示:

set *(0x24040000 as *mut i32) = 0x0000CAFE
Run Code Online (Sandbox Code Playgroud)

我的问题是 GDB 如何解释不同的命令以及为什么会出现此错误。是不是因为符号(int)无法识别,但是在这种情况下,gdb如何加载符号?gdb 是否需要将指令编译为目标上运行的二进制文件的正确语言?

gdb

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

Xilinx FPGA中切片寄存器和切片LUT之间有什么区别?

Xilinx FPGA中"切片寄存器"和"切片LUT"之间有什么区别?

例如,为什么切片寄存器的数量等于Vertix 5中切片LUT的数量,但切片寄存器的数量是Vertix 6和Vertix 7中切片LUT数量的两倍?

图像显示了我的系统在vertix 7 fpga xilinx器件上的综合结果

fpga xilinx

4
推荐指数
1
解决办法
4303
查看次数

复位后的ARM PC值

我是MCU的新手,并试图弄清楚基于arm(Cortex M3-M4)的MCU是如何启动的.因为启动是针对任何SOC的,所以我采用了STM的示例硬件板进行案例研究.

主板:STMicroelectronics - STM32L476 32位.

在该板中,当引导模式为(x0)"从用户闪存引导"时,电路板将0x0000000地址映射到闪存地址.在闪存上我已经粘贴了我的二进制文件,前4个字节指向矢量表第一个条目,即esp.现在如果我按下复位按钮ARM文档说PC值将设置为0x00000000.

CPU通常基于PC -> PC + 1循环执行指令流.在这种情况下,如果我看到PC值指向esp,这不是指令.Arm CPU如何做不使用该指令地址的逻辑,但跳转到地址处的值存储0x00000004

或者是这种情况:复位会产生一个特殊的硬件中断并导致PC值为at 0x00000004,如果是这样的话,为什么Arm文档说它将PC值设置为0x00000000

参考:http://infocenter.arm.com/help/index.jsp?topic = / com.arm.doc.faqs/ka3761.html

上电复位后ARM寄存器中有哪些值?适用于:ARM1020/22E,ARM1026EJ-S,ARM1136,ARM720T,ARM7EJ-S,ARM7TDMI,ARM7TDMI-S,ARM920/922T,ARM926EJ-S,ARM940T,ARM946E-S,ARM966E-S,ARM9TDMI

应答寄存器R0-R14(包括存储寄存器)和SPSR(在所有模式下)在复位后未定义.

如果内核具有VINITHI或CFGHIVECS输入,当核心保持复位时,程序计数器(PC/R15)将被设置为0x000000或0xFFFF0000.应设置此输入以反映系统中矢量表的基础所在的位置.

当前程序状态寄存器(CPSR)将指示ARM内核已启动处于ARM状态,Supervisor模式同时设置了FIQ和IRQ掩码位.条件代码标志将是未定义的.有关CPSR的详细说明,请参阅"ARM体系结构手册".

microcontroller arm cortex-m3 stm32 thumb

4
推荐指数
2
解决办法
1401
查看次数

Cherry 在评论 Gerrit 中挑选补丁列表

我有一份关于 Gerrit 的待审核补丁列表(31 个补丁相互跟随),并且想知道如何在我的本地 git 上一次拉取它们。

我知道可以通过图形界面下载补丁:

Checkout: git fetch <url> refs/changes/78/141978/9 && git checkout FETCH_HEAD
Cherry Pick: git fetch <url> refs/changes/78/141978/9 && git cherry-pick FETCH_HEAD
Format Patch: git fetch <url> refs/changes/78/141978/9 && git format-patch -1 --stdout FETCH_HEAD
Pull git pull <url> refs/changes/78/141978/9
Patch-File 376aeb6.diff.base64  |   376aeb6.diff.zip
Archive tgz | tar | tbz2 | txz
Run Code Online (Sandbox Code Playgroud)

我通常使用以下命令获取补丁并挑选它:

git fetch <url> refs/changes/78/141978/9 && git cherry-pick FETCH_HEAD
Run Code Online (Sandbox Code Playgroud)

但我不想为我需要的所有补丁都这样做。

gerrit

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

为什么{0}分配有效但数组不为{5}

我尝试了以下代码:

int a[4] = {0};
int b[4] = {5};
int c[4];
printf("%d %d %d %d %d %d\n", a[0], a[3] , b[0], b[3], c[0], c[3]);
Run Code Online (Sandbox Code Playgroud)

得到以下结果:

0 0 5 0 random random
Run Code Online (Sandbox Code Playgroud)

虽然我得到了为什么我得到了c数组的随机值,我不明白为什么分配{5}不起作用{0},只是初始化数组的第一个元素.

有没有办法将数组b元素初始化为不同于0的相同值?(不使用memset或for循环)

c arrays array-initialization

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

如何验证 Pod 是否以特权运行

我试图弄清楚如何验证 pod 是否在启用安全上下文特权(设置为 true)的情况下运行。

我假设“ kubectl describe pod [name]”将包含此信息,但事实似乎并非如此。

我使用以下定义快速创建了一个 pod 来测试:

apiVersion: v1
kind: Pod
metadata:
  name: priv-demo
spec:
  volumes:
  - name: priv-vol
    emptyDir: {}
  containers:
  - name: priv-demo
    image: gcr.io/google-samples/node-hello:1.0
    volumeMounts:
    - name: priv-vol
      mountPath: /data/demo
    securityContext:
      allowPrivilegeEscalation: true
      privileged: true
Run Code Online (Sandbox Code Playgroud)

关于如何检索安全上下文有什么想法吗?这一定是一件很容易做的事情,我只是忽略了一些事情。

security kubernetes

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

如何将结构体转换为字符串?

我有以下结构:

typedef struct {
   float battery;
   float other;
   float humidity;
} rtcStore;

rtcStore rtcMem;
Run Code Online (Sandbox Code Playgroud)

我需要将结构中存储的数据发送到 thingspeak.com。但是,要发送数据,我需要将结构转换为字符串。谁能告诉我该怎么做?如果用C语言完成的话会更有帮助。

c++

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

这个功能的行为是什么?(2的力量)

我有下一个功能:

static inline int nextPowerOfTwo(int n) {
    n--;

    n = n >>  1 | n;
    n = n >>  2 | n;
    n = n >>  4 | n;
    n = n >>  8 | n;
    n = n >> 16 | n;
    //  n = n >> 32 | n;    //  For 64-bit ints

    return ++n;
}
Run Code Online (Sandbox Code Playgroud)

但我不知道他的行为是什么(功能输出 - 功能 - )

我不知道每一行的行为是什么(每行后的n值).

有人可以解释一下吗?

c

0
推荐指数
1
解决办法
92
查看次数

c 中的 fread 读取的内容超出了指示的内容

我正在尝试编写一个程序,为 .wav 文件添加效果。

该计划应该:

  1. 读取 .wav 文件

    • 解析标头
    • 读取数据
  2. 操纵数据

  3. 创建一个新的 .wav 文件 -
    • 写标题
    • 写入新数据

我陷入了一些奇怪的函数问题fread()- 当我试图读取 4 个字节到我定义的字符数组(大小为 4 个字节)时 - 我得到了单词 + 垃圾。

如果我尝试以相同的方式读取 2 或 3 个字节 - 一切正常。

我尝试在两种情况下(当我读取 2/3 字节时与当我读取 4 字节时)用 while 循环打印数组的内容,直到 '\n' 而不是 printf("%s") - 我得到了相同的结果(第一种情况写字符串,第二种情况写字符串+垃圾)。另外,我写回标题并复制数据 - 创建的文件不是同一首歌!它确实打开了 - 所以标头很好,但数据是垃圾。我会很高兴听到一些关于可能原因的想法。我真的很困惑,请帮助我! 问题 - 输出的打印屏幕

c fread

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