小编7_R*_*R3X的帖子

Rust中的immutable和const变量有什么区别?

我了解到,如果变量未使用显式声明为可变mut,则变为不可变(在声明后不能更改).那为什么我们const在Rust中有关键字?他们不一样吗?如果没有,它们有何不同?

const immutability rust

33
推荐指数
5
解决办法
5474
查看次数

如何在Rust中没有尾随换行符的情况下打印输出?

println!Rust中的宏总是在每个输出的末尾留下换行符.例如

println!("Enter the number : ");
io::stdin().read_line(&mut num);
Run Code Online (Sandbox Code Playgroud)

给出输出

Enter the number : 
56
Run Code Online (Sandbox Code Playgroud)

我不希望用户的输入56在新行上.我该怎么做呢?

newline println rust

19
推荐指数
2
解决办法
8763
查看次数

Python3 print()与Python2打印

在处理缓冲区溢出攻击时,我发现了一些非常奇怪的东西.我已经成功地发现我需要提供32个字符,然后才能跳转到正确的地址,并且正确的地址是0x08048a37.当我执行

python -c "print '-'*32+'\x37\x8a\x04\x08'" | ./MyExecutable
Run Code Online (Sandbox Code Playgroud)

该漏洞利用取得了成功.但是,当我尝试时:

python3 -c "print('-'*32+'\x37\x8a\x04\x08')" | ./MyExecutable
Run Code Online (Sandbox Code Playgroud)

它没有.可执行文件只会导致分段错误,而不会跳转到所需的地址.实际上,执行

python -c "print '-'*32+'\x37\x8a\x04\x08'"
Run Code Online (Sandbox Code Playgroud)

python3 -c "print('-'*32+'\x37\x8a\x04\x08')" 
Run Code Online (Sandbox Code Playgroud)

在控制台上产生两个不同的输出.当然,这些角色不可读,但它们在视觉上是不同的.

我想知道为什么会这样?

python stdout bytestring

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

{:?}在Rust格式字符串中的含义是什么?

我发现{:?}在Rust 中打印整个数组.我想知道它叫什么,它究竟是如何工作的.它仅限于打印阵列还是可以用于其他目的?

arrays rust

8
推荐指数
2
解决办法
1234
查看次数

使用 dbus 的简单客户端服务器

我已经使用 dbus 开发了一个客户端服务器应用程序。客户端使用 dbus_message 发送 2 个输入参数,服务器返回总和。我主要对使用 DBusWatch 感兴趣,因此我可以从多个客户端发送并让服务器响应它们。任何人都可以帮助我编写代码并向我解释 DbusWatch 的工作原理吗?

代码

客户端

#include <stdio.h>
#include <stdlib.h>
#include <dbus/dbus.h>
#include <stdbool.h>
#include <ctype.h>
void caller(int param,int param1)
{
   DBusMessage* msg;
   DBusMessageIter args;
   DBusConnection* conn;
   DBusError err;
   DBusPendingCall* pending;
   int ret;
   int level;

   printf("Calling remote method with %d %d\n",param,param1);

   // initialiset the errors
   dbus_error_init(&err);

   // connect to the system bus and check for errors
   conn = dbus_bus_get(DBUS_BUS_SESSION, &err);
   if (dbus_error_is_set(&err)) { 
      fprintf(stderr, "Connection Error (%s)\n", err.message); 
      dbus_error_free(&err);
   }
   if (NULL == …
Run Code Online (Sandbox Code Playgroud)

c dbus

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

运行时转储执行数据

我正在使用 JaCoCo 生成代码覆盖率报告,并且我有许多场景需要生成单独的报告。问题是该程序非常庞大,大约需要 2 分钟才能启动并加载所有类文件。

我想在其中一个场景完成后立即获取运行时的执行数据,然后开始下一个场景,而不是为每个场景重新启动服务器。

有办法这样做吗?

code-coverage jacoco

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

amazon ec2 中的 docker 应用程序 此站点无法提供安全连接

当我尝试在 Amazon EC2 实例上运行应用程序 ( https://docs.docker.com/v17.09/get-started/part2/#run-the-app ) 时,我收到一条错误消息“This站点可以\xe2\x80\x99t提供安全连接”。

\n\n

我做了以下事情:

\n\n
    \n
  1. Amazon Ec2 实例:Amazon Linux AMI 2018.03.0 (HVM),SSD 卷类型
  2. \n
  3. 更新了 INBOUND 安全组的以下内容:

    \n\n
      \n
    • https
    • \n
    • 所有流量
    • \n
    • 自定义 TCP(端口范围 4000)
    • \n
  4. \n
  5. 构建并运行了 docker -docker run -p 4000:80 friendlyhello
  6. \n
  7. curl http://localhost:4000- 给出了响应,但是当我尝试使用浏览器和 ec2 实例的公共 IP 进行访问时(例如https://18.224.172.210:4000),我收到错误:
  8. \n
\n\n
\n

此站点无法\xe2\x80\x99 提供安全连接 18.224.172.210 发送了\n 无效响应。

\n\n

ERR_SSL_PROTOCOL_ERROR

\n
\n

amazon-ec2 docker

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

使用scan读取u8时"宏未定义"!()

我在读取如何读取Rust 1.0中用户的整数输入中的读取整数输入?,但我注意到所有解决方案首先将一个字符串作为输入,然后将其转换为整数.我想知道是否有办法直接读取整数.

这个页面提到了scan!()宏,但由于某些原因,当我使用编译以下程序时它似乎没有运行rustc main.rc.

extern crate text_io;

fn main() {
    let mut a: u8;
    let mut b: u8;
    scan!("{},{}", a, b);
    print!("{} {}", a, b);
}
Run Code Online (Sandbox Code Playgroud)

这会产生错误:

error: macro undefined: 'scan!'
    scan!("{},{}",a,b);
Run Code Online (Sandbox Code Playgroud)

input rust

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

int表达式中int的含义

我无法理解以下语法中最内层的"int"究竟是什么意思.

int(*(*ptr (int))(void)
Run Code Online (Sandbox Code Playgroud)

我对这个表达式的理解说,这ptr是一个函数指针,它的参数(从表达式的void部分)不带任何内容,并返回一个int(从头int开始).但到底是什么在intptr的意思吗?

编辑:道歉,但问题文件本身的问题被错误印刷.这是表达式

int (*ptr (int))(void)
Run Code Online (Sandbox Code Playgroud)

c pointers function

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