小编Kor*_*rba的帖子

使用GO语言将ASCII数字字符的字节数组转换为int

我看到了一些完全相同的问题的答案:如何在GO编程语言中将Byte数组转换为int?

我写下面的函数将字节数组转换为int

func convertByteToInt(in []byte) int32 {
    return  (int32(in[0]) << 24 | int32(in[1]) << 16 | int32(in[2]) << 8 | int32(in[3]))
}
Run Code Online (Sandbox Code Playgroud)

在此之前,我确保字节数组具有正确的(基数256)值.在[0] = 54(ASCII为6),[1] = 54(ASCII为6),[2] = 49(ASCII为1),[3] = 49(ASCII为1)中.

所以我期望从字节数组中检索整数6611的值,但我最终获得了909521201.我无法理解在这种简单的转换中究竟发生了什么.任何人都可以闪光吗?

谢谢

arrays int type-conversion go

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

减少 SYS_ADMIN Linux 功能

我正在创建一个 Docker 容器,我不想为其保留“特权”标志。这是为了使其更安全并更好地控制。我的容器主要从事以下任务(这将帮助我定义其资源访问范围并相应地实施访问控制) 1. 在容器上挂载 gluster 文件系统 2. 运行 SSH 守护进程以接受传入的 SSH 连接 3. 运行一些通常可用的 bash 命令

我在运行 docker 容器时使用“--cap-add=SYS_ADMIN”选项来实现此目的。然而,由于 SYS_ADMIN 添加了比我需要的更多的权限(如下所列)。如何仅实现 SYS_ADMIN 功能的子集?

系统管理员:

执行一系列系统管理操作,包括:quotactl(2)、mount(2)、umount(2)、swapon(2)、swapoff(2)、sethostname(2) 和 setdomainname(2)。

  • 执行特权系统日志(2)

  • 操作(自 Linux 2.6.37 起,应使用 CAP_SYSLOG 来允许
    此类操作)。执行VM86_REQUEST_IRQ vm86(2)命令;

  • 对任意 System V IPC 对象执行IPC_SET 和 IPC_RMID 操作

  • 对可信和安全扩展属性执行操作(请参阅
    attr(5))

  • 使用lookup_dcookie(2)。
  • 使用ioprio_set(2)进行赋值

  • IOPRIO_CLASS_RT 和(Linux 2.6.25 之前)IOPRIO_CLASS_IDLE I/O
    调度类。

  • 传递套接字凭据时伪造 UID。

  • 在打开文件的系统调用中(例如,accept(2)、execve(2)、open(2)、pipe( 2))。

  • 使用 CLONE_* 标志通过 clone(2) 和 unshare(2) 创建新的命名空间。
  • 调用 perf_event_open(2)。
  • 访问特权性能事件信息。
  • 调用 setns(2)。
  • 调用 fanotify_init(2)。
  • 执行 KEYCTL_CHOWN 和 KEYCTL_SETPERM keyctl(2) 操作。
  • 执行 …

containers docker linux-capabilities

5
推荐指数
0
解决办法
1580
查看次数

Aurora 与 DynamoDB 延迟不如预期

我想得到一些数字来证明我的阅读,与关系数据库(MySQL、PostgreSQL、Aurora)相比,DynamoDB 键值存储具有更好的读取性能。所以我决定比较 DynamoDB 和 AWS-Aurora 的读取延迟(这是 AWS 网站的 a/c - “比标准 MySQL 数据库快五倍,比标准 PostgreSQL 数据库快三倍”)

步骤 1:在 Aurora 中使用以下架构创建一个表,并向该表添加 102 万条记录。

Table gift_log (
  gift_uuid               BINARY(16) NOT NULL,
  user_uuid               BINARY(16) NOT NULL,
  parent_uuid             BINARY(16),
  operation_time          TIMESTAMP,
  operation               VARCHAR(20) NOT NULL,
  gift_type               VARCHAR(20) NOT NULL,
  parent_type             VARCHAR(20),
  relation_type           VARCHAR(20),
  PRIMARY KEY (gift_uuid)
);
Run Code Online (Sandbox Code Playgroud)

使用使用 MySQL 驱动程序的 Golang 客户端数据库/sql 包来查询表。

步骤2;创建了具有以下属性的 DynamoDB 表。向表中添加了 100 万个项目。没有使用任何排序键。所有查询都使用分区键。


Table: GiftLog {
    gift_uuid               Binary (Partition Key)
    user_uuid               Binary
    operation_time          Number,
    operation               String,
    gift_type               String, …
Run Code Online (Sandbox Code Playgroud)

latency go amazon-dynamodb amazon-aurora aws-sdk-go

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