小编drd*_*dot的帖子

在Python中的十六进制字符串变量到十六进制值转换

我有一个变量调用hex_string.值可能是'01234567'.现在我想从这个变量得到一个十六进制值,它是0x01234567而不是字符串类型.此变量的值可能会更改.所以我需要一个通用的转换方法.

python string hex

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

尝试映射大页面 (1GB) 时 mmap 失败

我做了什么:

  1. 使用 root 启用大页(我的系统支持 1MB 大页)

    $ echo 20 > /proc/sys/vm/nr_hugepages
    
    Run Code Online (Sandbox Code Playgroud)
  2. 将大页文件系统挂载到 /mnt/hugepages

    $ mount -t hugetlbfs nodev /mnt/hugepages
    
    Run Code Online (Sandbox Code Playgroud)
  3. 在大页文件系统中创建文件

    $ touch /mnt/hugepages/hello
    
    Run Code Online (Sandbox Code Playgroud)
  4. 然后使用地址 0 映射一个大页面,mmap如下面的代码所示

    #define FILE_NAME "/mnt/hugepages/hello"
    #define PROTECTION (PROT_READ | PROT_WRITE) // page flag
    #define LENGTH (1024*1024*1024)     // huge page size
    #define FLAGS (MAP_SHARED)      //page flag
    #define ADDR (void *) (0x0UL)   //starting address of the page
    
    fd = open(FILE_NAME, O_CREAT | O_RDWR, 0755);    
    if (fd < 0) {                    // 
          perror("Open failed");
          exit(1);
     }
    
    // allocate …
    Run Code Online (Sandbox Code Playgroud)

c kernel linux-kernel huge-pages

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

如何读取可变数量的文件,然后组合R中的数据帧?

我想设计一个功能.假设我有文件file1.csv,file2.csv,file3.csv,...,file100.csv.每次通过指定整数向量id调用函数时,我只想读取其中的一些,例如,id = 1:10,然后我将读取file1.csv,...,file10.csv.

在阅读了那些csv文件后,我想将它们组合成一个变量.所有csv文件都具有相同的列结构.

我的代码如下:

  namelist <- list.files() 
  for (i in id) { 
    assign(paste0( "file", i ), read.csv(namelist[i], header=T))
  }
Run Code Online (Sandbox Code Playgroud)

正如您所看到的,在我读完所有数据矩阵之后,我坚持将它们组合在一起,因为它们都有不同的变量名称.

r

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

Python:接收套接字数据的固定等待时间

我写了一个udp服务器和客户端。客户端向服务器发送简单的 udp 消息,服务器将响应。服务器会随机丢弃一些响应包。在我的客户端代码中,我写了以下行

for i in range(0,10):
  sequence_number = i
  start = time.time()
  clientSocket.sendto("Ping " + str(i) + " " + str(start), server)
  # Receive the client packet along with the address it is coming from
  message, address = clientSocket.recvfrom(1024)
  end = time.time()
  if message != '':
    print message
    rtt = end - start
    print "RTT = " + str(rtt)
Run Code Online (Sandbox Code Playgroud)

如果服务器丢弃响应,以下行会卡在那里。

message, address = clientSocket.recvfrom(1024)
Run Code Online (Sandbox Code Playgroud)

我在这里尝试了超时方法: Socket recv - limited wait time
但是超时会中止整个客户端程序。我只希望客户端等待 5 秒,然后如果未收到最后一个响应(由服务器丢弃),则继续发送下一个数据包。如何在客户端设置等待时间?

python sockets

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

golang程序在调用linux shell命令后终止

我正在使用root权限执行以下golang程序(代码段):

  binary, lookErr := exec.LookPath("auditctl")
  if lookErr != nil {
    panic(lookErr)
  }
  env := os.Environ()

  args :=  []string{"auditctl", "-D"}
  execErr := syscall.Exec(binary, args, env)
  if execErr != nil {
    fmt.Println("error")
    panic(execErr)
  }

  fmt.Println("no error")
Run Code Online (Sandbox Code Playgroud)

因为我在系统中没有任何auditctl规则,该命令在终端中打印以下内容.这就像我直接输入shell时一样正常.

No rules
Run Code Online (Sandbox Code Playgroud)

除了不打印"错误"和"无错误".这意味着golang程序在syscall.Exec之后立即终止.这是怎么发生的?如何在syscall.Exec之后继续执行,因为我还有其他东西要在同一个程序中运行.

linux shell go

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

在 rst 文件中显示两个破折号

我写了一个 rst 文件并计划显示以下内容:

命令 -abc --efg

当两个破折号在一起时,我尝试了几种方法来逃避破折号,但是我无法在编译的文档中得到我想要的东西。以下是我尝试过的几件事:

command -abc --efg
command -abc \--efg
command -abc -\-efg
command -abc \-\-efg
command -abc \--\--efg
Run Code Online (Sandbox Code Playgroud)

有什么建议?

restructuredtext

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

来自不同文件的 F 字符串赋值?

我喜欢保留一个文件,其中仅包含代表 SQL 查询的 f 字符串,并且每个查询都需要一个数据库名称。在我的 python 程序中,我将在读取数据库名称时填充 db 变量。

例如queries.py,我有

query_1 = f"select * from {db} limit 10;"
Run Code Online (Sandbox Code Playgroud)

main.py,我用

from quries import quries
# read out db information into dbs
for db in dbs:
  # execute the query_1 for each db 
Run Code Online (Sandbox Code Playgroud)

我怎样才能实现循环中的逻辑?

python f-string

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

在"uint8_t |(uint8_t << 8)"中是否有不同的方式处理整数提升?

在下面的程序中,似乎a [1]被移位8位并且变为0并且打印值应该是1.但是实际上发生整数提升并且b的打印值是257.我正在运行gcc版本4.8. 2在x86-64上.

这是一个问题:整数提升是否会以不同的方式处理,因此打印值不是257而不更改处理器和编译器更改代码(处理器选项仅限于x86,x86-64和所有ARM)?

#include<stdio.h>
#include<stdint.h>
#include<inttypes.h>

int main(){
  uint8_t *a;
  a = (uint8_t *)malloc(sizeof(uint8_t)*2);
  uint16_t b;
  a[0] = 1; a[1] = 1;
  b = a[0] | (a[1] << 8);
  printf("b = %d\n", b);
  return 0;
}
Run Code Online (Sandbox Code Playgroud)

c c++ integer

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

malloc指针地址改变导致段错误?

我尝试使用C编写一个简单的数据库.但是,我尝试调试我的分段错误,并发现通过malloc获得的内存指针似乎正在改变(名称和电子邮件指针似乎指向Database_load程序执行之前和之后的不同内存位置).我有两个问题:

  1. 为什么在执行Database_load之前和之后内存指针(名称和电子邮件)指向不同的位置?

  2. 程序为什么会产生seg错误?

这是与问题相关的代码

#include <stdio.h>
#include <assert.h>
#include <stdlib.h>
#include <string.h>
#include <errno.h>

int MAX_DATA;
int MAX_ROWS;

struct Address {
    int id;
    int set;
    //int MAX_DATA;
    char *name;
    char *email;
};

struct Database {
    //int MAX_ROWS;
    struct Address *rows;
};

struct Connection{
    FILE *file;
    struct Database *db;
};

void die(const char *message){
    if(errno){
        //perror(message);
        printf("ERROR: %s\n", message);
    }
    else{
        printf("ERROR: %s\n", message);
    }
    exit(1);
}

void Address_print(struct Address *addr){
    printf("%d %s %s\n", addr->id, addr->name, addr->email);
}

void Database_load(struct Connection …
Run Code Online (Sandbox Code Playgroud)

c pointers segmentation-fault

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

了解linux中的进程内存映射

我试图了解 linux 进程内存布局的基本知识,我得到了这个程序:

#include <stdio.h> // standard io
#include <stdlib.h> // C standard library
#include <pthread.h> // threading
#include <unistd.h> // unix standard library
#include <sys/types.h> // system types for linux

// getchar basically is like "read"
// it prompts the user for input
// in this case, the input is thrown away
// which makes similar to a "pause" continuation primitive 
// but a pause that is resolved through user input, which we promptly throw away!
void * thread_func …
Run Code Online (Sandbox Code Playgroud)

linux memory memory-management glibc x86-64

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