小编che*_*sam的帖子

是否有一个python assert()方法检查两个边界?

在我正在进行的一些单元测试中,当变量位于两个边界条件之间时,我需要通过测试.

就像是 -

def myTest(self):
    myInt = 5
    self.assertBetween(myInt,3,8)
Run Code Online (Sandbox Code Playgroud)

会通过测试.或者,如果myInt在3到8的范围之外撒谎,它将失败.

我查看了python文档中的断言方法列表,但无法确定哪一个会给我这种功能.

谢谢.

python unit-testing

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

我可以使用正则表达式来搜索数字的倍数吗?

我正在尝试搜索一个大项目的所有示例,我已经声明了一个数组[48]作为大小或任何48的倍数.

我可以使用正则表达式函数来查找48*n的匹配项吗?

谢谢.

regex

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

如何在Linux内核中为char*类型字符串分配内存?

我正在尝试为char*分配一些内存,如下所示.

static ssize_t memo_write(struct file *filp, const char __user *buf, 
   size_t count, loff_t *f_pos){
    ssize_t retval = -ENOMEM;
    printk("write function\n");

    if((data = kmalloc(strlen(buf), GFP_KERNEL)) == NULL)
        printk("kmalloc fail\n");

    if(copy_from_user(data, buf, strlen(buf))){
        retval = -EFAULT;
        goto out;
    }
    *f_pos += strlen(buf);
    retval = strlen(buf);

    out:
        return retval;
}
Run Code Online (Sandbox Code Playgroud)

'data'在头文件中声明为

char *data;
Run Code Online (Sandbox Code Playgroud)

当我调用write函数时,未达到'kmalloc fail'行,这使我相信kmalloc成功,但是当我尝试再次从'data'变量读取时,数据不会显示.

更令人困惑的是,如果我完全摆脱kmalloc位,可以从驱动程序中读取数据.虽然问题在于它之后是其他数据的加载,因为我没有机会memset()它.

我正确使用kmalloc吗?大概不是.我该怎么做?

另外,我的阅读功能如下.

static ssize_t memo_read(struct file *f, char __user *buf, 
    size_t count, loff_t *f_pos){
    ssize_t retval = 0;

    printk("read function\n");
    printk("data = %s\n", data);

    if(*f_pos >= strlen(data)){ …
Run Code Online (Sandbox Code Playgroud)

c memory linux-kernel

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

我可以在Linux内核模块中使用strtok()吗?

我需要对写入模块的数据进行解析,并且使用string.h的strtok()函数会很有用.但是我试过了

#include <string.h>
Run Code Online (Sandbox Code Playgroud)

#include <linux/string.h>
Run Code Online (Sandbox Code Playgroud)

没有成功.这可能吗?或者我是否必须编写自己的strtok函数?

谢谢

c string module linux-kernel

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

在这个例子中,WITH语句是做什么的?我正在尝试随机生成数据

INSERT INTO files (fileUID, filename)
WITH fileUIDS(fileUID) AS
( VALUES(1) UNION ALL
  SELECT fileUID+1 FROM fileUIDS WHERE fileUID < 1000 )
SELECT fileUID,
       TRANSLATE ( CHAR(BIGINT(RAND() * 10000000000 )), 'abcdefgHij', '1234567890' )
FROM fileUIDS;
Run Code Online (Sandbox Code Playgroud)

sql t-sql sql-server with-statement

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

使用 stat() 函数测试 DIRENT 是目录还是文件的正确方法是什么?

我在使用 'if(S_IFDIR(stbuf.st_mode))' 行时遇到一些问题。这是测试要递归到的目录的正确方法吗?目前该函数似乎可以正确执行 1 或 2 个循环,然后失败并出现分段错误。

我已经尝试过以下方法,并且可能更多作为条件。

S_ISDIR(st_mode)
((st_mode & ST_IFMT) == S_IFDIR)
S_IFDIR(stbuf.st_mode)
Run Code Online (Sandbox Code Playgroud)

我已经包含了整个函数,因为我担心问题可能出在其他地方。

void getFolderContents(char *source, int temp){
    struct stat stbuf;
    int isDir;
    dirPnt = opendir(source);
    if(dirPnt != NULL){
        while(entry = readdir(dirPnt)){
            char *c = entry->d_name;
            if(strcmp(entry->d_name, cwd) == 0 || strcmp(entry->d_name, parent) == 0){
            }
            else{
                stat(entry->d_name, &stbuf);
                printf("%i %i ", S_IFMT, stbuf.st_mode);
                if(S_IFDIR(stbuf.st_mode)){            //Test DIR or file
                printf("DIR: %s\n", entry->d_name);
                getFolderContents(entry->d_name, 0);
            }
            printf("FILE: %s\n", entry->d_name);
        }
    }
    closedir(dirPnt);
}
Run Code Online (Sandbox Code Playgroud)

c directory-structure function

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

如何读取和计算互联网上文​​件的哈希值

我在互联网上有一个文件的网址。我需要计算 SHA1 哈希值,并逐行读取该文件。我知道如何做到这一点,但我读了这个文件两次,这可能不是一个很好的解决方案。

我怎样才能更有效地做到这一点?

这是我的代码:

URL url = new URL(url);
URLConnection urlConnection = url.openConnection();
urlConnection.setConnectTimeout(1000);
urlConnection.setReadTimeout(1000);
logger.error(urlConnection.getContent() + " ");
InputStream is = urlConnection.getInputStream();


// first reading of file is:

int i;
File file = new File("nameOfFile");
BufferedInputStream bis = new BufferedInputStream(is);
BufferedOutputStream bos = 
           new BufferedOutputStream(new FileOutputStream(file.getName()));
while ((i = bis.read()) != -1) {
    bos.write(i);
}
bos.flush();
bis.close();   
sha1(file);

// second reading of file is:

BufferedReader reader = new BufferedReader(new InputStreamReader(is));
String line;

while ((line = reader.readLine()) != null) …
Run Code Online (Sandbox Code Playgroud)

java file stream

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