小编eep*_*epp的帖子

在编写设备驱动程序时,linux中__iomem的用途是什么?

我已经看到它__iomem用于存储返回类型ioremap(),但我u32在ARM体系结构中使用它并且它运行良好.

那么__iomem这里有什么不同呢?在哪种情况下我应该使用它?

linux memory-management linux-device-driver linux-kernel

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

如何使用LESS动态生成整个类并将其连接到其父选择器

到目前为止我有这个(LESS语言):

少:

.test(@name) {
    (~".sm-@{name}") {
        background: ~"url(../images/icons/sm/@{name}-16x16.png)";
    }
}
Run Code Online (Sandbox Code Playgroud)

我可以调用它(.test("facebook"))来生成这样的东西:

CSS:

.sm-facebook {
    background: url(../images/icons/sm/facebook-16x16.png);
}
Run Code Online (Sandbox Code Playgroud)

但是,我无法使用常规&运算符将此生成的类定义连接到父选择器.我期待

少:

ul {
    li {
        &.test("facebook");
    }
}
Run Code Online (Sandbox Code Playgroud)

生成

CSS:

ul li.sm-facebook {
    background: url(../images/icons/sm/facebook-16x16.png);
}
Run Code Online (Sandbox Code Playgroud)

但我得到一个解析错误.

我怎样才能做到这一点?

css less

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

C 库的公共标头是否应该 #include 其他带双引号或尖括号的标头?

#include "..."使用而不是#include <...>for include 指令放入公共标头是否有已知的好处?

例如,给定一个公共头文件,需要包含除它之外的文件,它应该使用:

#include "file.h"
Run Code Online (Sandbox Code Playgroud)

或者

#include <mylib/file.h>
Run Code Online (Sandbox Code Playgroud)

(假设标头安装在mylib包含安装目录的子目录中)?

在常见的做法中,libxml2 使用尖括号,而curl 使用双引号。

c header-files

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

如何在Python中找到同一小时的第二天的Unix时间戳,包括DST?

在Python中,我可以找到当地时间的Unix时间戳,知道时区,就像这样(使用pytz):

>>> import datetime as DT
>>> import pytz
>>> mtl = pytz.timezone('America/Montreal')
>>> naive_time3 = DT.datetime.strptime('2013/11/03', '%Y/%m/%d')
>>> naive_time3
datetime.datetime(2013, 11, 3, 0, 0)
>>> localized_time3 = mtl.localize(naive_time3)
>>> localized_time3
datetime.datetime(2013, 11, 3, 0, 0, tzinfo=<DstTzInfo 'America/Montreal' EDT-1 day, 20:00:00 DST>)
>>> localized_time3.timestamp()
1383451200.0
Run Code Online (Sandbox Code Playgroud)

到现在为止还挺好.naive_time我不知道时区,而localized_time知道它在2013/11/03 在蒙特利尔的午夜,所以(UTC)Unix时间戳是好的.这个时区也是我当地的时区,这个时间戳似乎是正确的:

$ date -d @1383451200
Sun Nov  3 00:00:00 EDT 2013
Run Code Online (Sandbox Code Playgroud)

现在,时钟在11月3日凌晨2点在蒙特利尔调整了一个小时,所以我们当天增加了一小时.这意味着2013/11/03至2013/11/04之间有25小时.这表明:

>>> naive_time4 = DT.datetime.strptime('2013/11/04', '%Y/%m/%d')
>>> localized_time4 = mtl.localize(naive_time4)
>>> localized_time4
datetime.datetime(2013, 11, 4, 0, …
Run Code Online (Sandbox Code Playgroud)

python timezone localtime pytz dst

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

如何使用 Sphinx 的 autodoc 记录嵌套类?

有没有办法用 Sphinx 的 autodoc 插件记录嵌套类?

在:

class A:
    class B:
    """
    class B's documentation.
    """

    # ...
Run Code Online (Sandbox Code Playgroud)

我想autoclass在我的.rst文件中使用或类似的东西来A.B专门记录。

我试过:

.. currentmodule:: package.module

.. autoclass:: A.B
Run Code Online (Sandbox Code Playgroud)

和

.. autoclass:: package.module.A.B
Run Code Online (Sandbox Code Playgroud)

没有成功:

/path/to/file.rst:280: WARNING: autodoc: failed to import class 'B' from module 'package.module.A'; the following exception was raised:

...

Traceback (most recent call last):
  File "/usr/lib/python3.4/site-packages/sphinx/ext/autodoc.py", line 335, in import_object
    __import__(self.modname)
ImportError: No module named 'package.module.A'; 'package.module' is not a package
Run Code Online (Sandbox Code Playgroud)

当然A不是模块;似乎autoclass正在考虑 …

python inner-classes python-3.x python-sphinx autodoc

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

为什么在 Linux 上使用 RS-232 时 CTRL+C 不起作用?

首先,我不知道这个应该留在SO还是去SU:你告诉我。解决方案可能与编程有关。

我正在嵌入式设备上执行 Linux 并使用 RS-232 @ 9600 波特率与其进行通信。在 Windows 上使用 PuTTY 一​​切正常:我有一个 shell,可以键入和执行命令。

问题是:当我启动命令时,我无法使用 CTRL+C。例如,当 ping 某台机器时,ping 进入无限循环,我无法使用 CTRL+C 停止它。但是,当出现 Bash 提示符时,CTRL+C 会起作用并转到下一行(因此它会被传输)。^C我还注意到当我在运行命令时执行 CTRL+C 时,终端会显示。通过 Telnet 连接时,CTRL+C 在任何地方都可以正常工作。

我尝试使用 PuTTY 的“特殊命令”中断,但不起作用。我也尝试过不同的终端模拟器,同样的问题。

所以我猜这个问题与内核有关。对此我有什么可以调查的吗?

编辑:我正在运行 BusyBox v1.13.2。stty -a(RS-232)的输出为:

speed 9600 baud; rows 24; columns 80;
intr = ^C; quit = ^\; erase = ^?; kill = ^U; eof = ^D; eol = <undef>;
eol2 = <undef>; start = ^Q; stop = ^S; susp = ^Z; rprnt = …
Run Code Online (Sandbox Code Playgroud)

linux putty serial-port linux-kernel

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

node.js服务器之间的通信

我对node.js有点新意.我有疑问,我们可以连接两个node.js服务器吗?这两个服务器处理客户端并执行单独的操作我想在这两个服务器之间建立连接,以便这两个服务器可以相互共享状态.

谁能帮帮我吗?

它有点像这样

server1 ==> room1 [client1,client2,client3]

server2 ==> room2 [client4,client5,client6]

在这里,我想在这两个服务器之间进行通信.

javascript node.js

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

增加 Python 新整数类型的惯用方法是什么?

假设我定义了一个新类型:

import typing

Index = typing.NewType('Index', int)
Run Code Online (Sandbox Code Playgroud)

然后假设我有一个Index变量:

index = Index(0)
Run Code Online (Sandbox Code Playgroud)

增量的惯用方法是index什么?

如果我做

index += 1
Run Code Online (Sandbox Code Playgroud)

这相当于

index = index + 1
Run Code Online (Sandbox Code Playgroud)

那么类型index变为int而不是Index从静态类型检查的角度来看:

$ mypy example.py
Run Code Online (Sandbox Code Playgroud)
example.py:4: error: Incompatible types in assignment (expression has type "int", variable has type "Index")
Run Code Online (Sandbox Code Playgroud)

有什么比

index = Index(index + 1)
Run Code Online (Sandbox Code Playgroud)

保持Index类型?

python python-3.x type-annotation python-typing

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

C++11中如何获取依赖函数指针模板参数的第一个参数的类型?

当前代码:

#include <utility>

template <typename T, void (*D)(T *)>
std::pair<T *, void (*)(T *)> f(T * const t)
{
    // ...
    return std::make_pair(t, D); // need `T` and `D` here
}

void d(int *t);

void g()
{
    auto something = f<int, d>(new int {5});        
}
Run Code Online (Sandbox Code Playgroud)

我想要什么:

#include <utility>

template </* fill here: only `D` */>
std::pair<T *, void (*)(T *)> f(T * const t)
{
    // ...
    return std::make_pair(t, D); // need `T` and `D` here
}

void d(int *t); …
Run Code Online (Sandbox Code Playgroud)

c++ templates type-traits c++11 template-argument-deduction

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

如何在Java中唯一地标识线程?

在Java中,有没有办法唯一地识别线程?仅使用Thread.getCurrent().getId()是不够的,因为线程可能会死亡而下一个线程可能会获得其ID.对我来说,那些线程不一样,所以我需要一种方法来识别它们.

如果我能得到它,线程创建时间戳将是有用的.

java multithreading

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