小编Hug*_*anc的帖子

我无法将字符作为字符串访问

我有以下代码:

#include <stdio.h>
#include <stdlib.h>

char values[] = {"abcde"};

int main(int argc, char *argv[])
{
    printf("%d\n", strcmp(&values[0], argv[1]));
    return EXIT_SUCCESS;
}
Run Code Online (Sandbox Code Playgroud)

我以这种方式编译和启动:

$ gcc main.c -o main
$ ./main a
98
Run Code Online (Sandbox Code Playgroud)

的结果strcmp是 98,所以值不一样。当我替换&values[0]通过"a"在代码中,我看到,他们是相同的(strcmp输出等于0)。

那么有没有办法values[0]作为字符串访问?我想我需要\0在最后以某种方式指定,以便将字符用作字符串,但我找不到方法。

c string char strcmp

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

在golang中执行ssh

我正在寻找一种从 golang 程序在终端中启动 ssh 的方法。

func main() {
    cmd := exec.Command("ssh", "user@192.168.0.17", "-p", "2222")
    err := cmd.Run()
    if err != nil {
            panic(err)
    }
}
Run Code Online (Sandbox Code Playgroud)

这非常有效,直到我输入正确的密码,然后程序退出。我想当经过身份验证时,会启动另一个 ssh 脚本,但我不知道如何解决这个问题。我搜索了一些有关它的信息,但我发现的只是如何在 go 中创建 ssh 会话,如果可能的话,我想避免这种情况。

ssh go

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

为什么 lea 将明显随机的地址移动到 rdi?

我有以下一段C代码:

#include <stdio.h>

int main()
{
    int i;
    for(i=0; i<10; i++)
        puts("hello, friend");

    return 0;
}
Run Code Online (Sandbox Code Playgroud)

我这样编译的:gcc firstprog.c -o firstprog

然后,当使用gdb拆卸它时,我看到:

(gdb) disassemble 
Dump of assembler code for function main:
=> 0x0000555555555149 <+0>: endbr64 
   0x000055555555514d <+4>: push   rbp
   0x000055555555514e <+5>: mov    rbp,rsp
   0x0000555555555151 <+8>: sub    rsp,0x10
   0x0000555555555155 <+12>:    mov    DWORD PTR [rbp-0x4],0x0
   0x000055555555515c <+19>:    jmp    0x55555555516e <main+37>
   0x000055555555515e <+21>:    lea    rdi,[rip+0xe9f]        # 0x555555556004
   0x0000555555555165 <+28>:    call   0x555555555050 <puts@plt>
   0x000055555555516a <+33>:    add    DWORD PTR [rbp-0x4],0x1
   0x000055555555516e <+37>:    cmp …
Run Code Online (Sandbox Code Playgroud)

assembly x86-64 objdump string-literals

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

如果第一个失败,Go 是否执行“if”中的所有条件?

想象一下下面的一段代码:

if someBool && funcReturningABool() {
    // code here...
}
Run Code Online (Sandbox Code Playgroud)

wheresomeBool是一个布尔值并funcReturningABool返回真或假。

如果someBool等于false,funcReturningABool仍然会被执行吗?

if-statement execution go

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

标签 统计

go ×2

assembly ×1

c ×1

char ×1

execution ×1

if-statement ×1

objdump ×1

ssh ×1

strcmp ×1

string ×1

string-literals ×1

x86-64 ×1