小编Jam*_*mie的帖子

有人可以进一步解释用git检查远程分支吗?

我在几个问题看这里,特别是这一个,但我仍然感到困惑.

我有一个服务器设置有一个慢速上行链接,我通过SSH隧道访问.在它上面,我克隆了一个Linux内核的裸存储库(origin指向kernel.org).然后我克隆了我的家用机器上的裸存储库,签出了标签,创建了一个分支('测试'说),在该分支上进行了更改,最后将更改推送到我服务器上的裸存储库.

现在我在一个客户端站点,想要检查分支机构.为了避免我在客户端站点的缓慢上行链路,我从kernel.org克隆了linux repo并通过SSH隧道将"origin"更改为指向我的服务器. 我可以看到分支,但无法检查出来:

~/linux-3.0.y$ git version
git version 1.7.0.4
~/linux-3.0.y$ 
~/linux-3.0.y$ git status
# On branch master 
nothing to commit (working directory clean)
~/linux-3.0.y$ 
~/linux-3-0.y$ git remote show origin
git-user@localhost's password:
* remote origin
  Fetch URL: git+ssh://git-user@localhost:48884/home/git-user/linux-3.0.y
  Push  URL: git+ssh://git-user@localhost:48884/home/git-user/linux-3.0.y
  HEAD branch: master
  Remote branches:
    test    new (next fetch will store in remotes/origin)
    master  new (next fetch will store in remotes/origin)
  Local ref configured for 'git push':
    master pushes to master (up to date) …
Run Code Online (Sandbox Code Playgroud)

git

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

select()调用剩余时间

我正在select()Linux/ARM平台上使用,看看udp套接字是否收到了数据包.如果它在超时之前返回(检测到数据包),我想知道select select中剩余多少时间.

有点像:

int wait_fd(int fd, int msec)
{
    struct timeval tv;
    fd_set rws;

    tv.tv_sec = msec / 1000ul;
    tv.tv_usec = (msec % 1000ul) * 1000ul;

    FD_ZERO( & rws);
    FD_SET(fd, & rws);

    (void)select(fd + 1, & rws, NULL, NULL, & tv);

    if (FD_ISSET(fd, &rws)) { /* There is data */
        msec = (tv.tv_sec * 1000) + (tv.tv_usec / 1000);
        return(msec?msec:1);
    } else { /* There is no data */
        return(0);
    }
}
Run Code Online (Sandbox Code Playgroud)

c linux select polling

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

使用文件内容作为BASH中的命令行参数

我想知道如何使用文件的内容作为命令行参数,但我正在努力学习语法.

说我有以下内容:

# cat > arglist
src/file1 dst/file1
src/file2 dst/file2
src/file3 dst/file3
Run Code Online (Sandbox Code Playgroud)

如何使用arglist文件中每行的内容作为参数来表示cp命令?

bash redirect

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

如何确定glibc(等)库的已安装版本?

我正在使用嵌入式Linux部署,并使用不编译I2C库函数调用的交叉编译器工具链.

如何确定系统上库的精确版本,以便重建工具链?

我不打算更换部署的库,因为我知道它们可以工作(包括I2C),所以我认为我需要以下内容:

  • Binutils版本
  • GCC版本
  • GLIBC
  • 内核(用于标题)

我想我可以从以下假设binutils库是版本2.2.5.内核被修改为我的源代码.

root@dev-box />ls /lib/ -al
drwxrwxrwx  3 root root     1024 Apr 27 09:44 .
drwxrwxrwx 14 root root     1024 Jan  1  1970 ..
-rwxrwxrwx  1 root root   105379 Jan  1  1970 ld-2.2.5.so
lrwxrwxrwx  1 root root       16 Jan  1  1970 ld-linux.so.2 -> /lib/ld-2.2.5.so
lrwxrwxrwx  1 root root       16 Jan  1  1970 ld.so.1 -> /lib/ld-2.2.5.so
-rwxrwxrwx  1 root root  1288601 Jan  1  1970 libc.so.6
-rwxrwxrwx  1 root root    25441 Jan  1  1970 libcrypt.so.1
-rwxrwxrwx …
Run Code Online (Sandbox Code Playgroud)

linux gcc gnu cross-compiling

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

什么是时间有效的算法来复制未对齐的位数组?

我过去必须多次这样做,而且我从未对结果感到满意.

任何人都可以建议一种快速的方法从源到目的地复制连续的位阵列,其中源和目标可能没有在方便的处理器边界上对齐(右移)?

如果源和目标都没有对齐,问题很快就会变成一个只有一个没有对齐的问题(在第一个副本之后说).

作为一个起点,我的代码不可避免地最终看起来像下面这样(未经测试,忽略副作用,这只是一个关闭袖口的例子):

const char mask[8] = { 1, 3, 7, 15, 31, 63, 127, 255 };
/* Assume:
 * - destination is already zeroed,
 * - offsets are right shifts
 * - bits to copy is big (> 32 say)
 */
int bitarray_copy(char * src, int src_bit_offset, int src_bit_len,
                  char * dst, int dst_bit_offset) {
    if (src_bit_offset == dst_bit_offset) { /* Not very interesting */ 
    } else {
        int bit_diff_offset = src_bit_offset - dst_bit_offset; /* assume positive */ …
Run Code Online (Sandbox Code Playgroud)

c copy bitarray

6
推荐指数
2
解决办法
3303
查看次数

我怎样才能将git SHA1呈现给gnu make?

我把tarball的软件版本放在一起,其中包括几个不同项目的输出.这些tarball本身被认为是一个版本.发布的tarball包括BOM(物料清单),其中列出了其中的所有项目及其关联的SHA1(git)签名.

为了更容易地重新创建这些tarball,我将一个make系统放在一起,逐行解析BOM,将存储库克隆到一个子目录中,检查指定的版本,然后执行构建.在我的BOM中说一行:

prog-a b5286f27d65ef20eb4508f76de5a1c57d8b21d85 git+ssh://git-user@localhost/~/prog-a
Run Code Online (Sandbox Code Playgroud)

存储库,如果尚未克隆,将被放入repos/prog-a,然后结帐完成(cd repos/prog-a; git checkout b5286f27d6),最后是make(make -C repos/prog-a).

我还没弄明白如何让gnu决定代码的签出版本是否已经构建了我需要的二进制文件.目前,每个子项目都被迫结账和重建.

如何向GNU make提供git repo的SHA1,以便它可以决定项目是否过时并需要更新(通过执行a git checkout)?

[编辑] 这是我的模式文件:

REPO_DIR=materials
BOM=$(shell sed -r 's/([^ ]+).+/\1/' bom)
BOM_DIR=$(shell sed -r 's_([^ ]+).+_$(REPO_DIR)/\1_' bom)
BOM_BLD=$(shell sed -r 's_([^ ]+).+_$(REPO_DIR)/\1/\1_' bom)

.PHONY: clean dist-clean

all: $(BOM)

clean:
    @rm $(BOM) $(BOM_BLD) -rf

dist-clean: clean
    @rm $(REPO_DIR)

.SECONDEXPANSION:

$(BOM): % : $(REPO_DIR)/$$*/$$*
    @echo " CP $< $@"
    @cp $< $@

$(BOM_BLD): % :  $$(*D)
    @echo " GIT …
Run Code Online (Sandbox Code Playgroud)

git build gnu-make

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

同一个类中的类的静态成员对象

假设我们有一个班级

class Egg
{
    static Egg e;
    int i;
    Egg(int ii):i(ii) {}
    Egg(const Egg &);    //Prevents copy-constructor to be called
  public:
    static Egg* instance() {return &e}
};

Egg Egg::e(47);
Run Code Online (Sandbox Code Playgroud)

此代码保证我们不能创建任何对象,但只能使用静态对象.但是我们如何在类中声明同一个类的静态对象.

还有一件事因为e是静态对象,静态对象只能调用静态成员函数,所以如何在静态对象e中调用构造函数,其构造函数也是私有的.

c++ static constructor

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

调用write()的长度为零的后果是什么?

在Linux write()函数中处于相当高的级别,它会过滤掉写入0个长度缓冲区的请求.这是有道理的.谁想要操作系统浪费它的时间钻孔层只是为了确定没有工作要做?

好吧......我

这与这个问题有关 ; 如果握手错误的话,如果地址(在数据之前在总线上发送)会产生错误,那么发现bit-banged I2C驱动程序将提供一个可能有用的返回码.

可以在地址之后发送虚拟数据,但不能发送我正在使用的设备.(也许我会尝试阅读......).

所以问题是:如果内核允许零(0)长度写入,会释放什么样的地狱?

io linux-device-driver linux-kernel

5
推荐指数
2
解决办法
786
查看次数

PNG 文件中 sBIT 块的用途是什么?

实际上,我不明白在 PNG 文件中使用 sBIT 块。

我正在存储来自 11 位/通道 RGB 源的 PNG 文件,因此我尽职尽责地在我的 (c) 代码中设置了 sBIT 块:

...
png_color_8 sig_bit;

sig_bit.gray = 0;
sig_bit.alpha = 0;
sig_bit.red = 11;
sig_bit.green = 11;
sig_bit.blue = 11;

png_set_sBIT(png_ptr, info_ptr, &sig_bit);
...
/* save the png */
Run Code Online (Sandbox Code Playgroud)

在 Windows 查看器(原生 Vista 图片查看器/Paint.net)中查看图像时,低 8 位被截断,因此我只能看到高 3 位。我原以为该sBIT块会自动指示读者将像素左移 5 位,以 MSB 证明显示数据的合理性。似乎并非如此。

当我在我的代码中打开有或没有 sBIT 块的 png 文件时,请执行以下操作:

png_color_8p sig_bit;
if (png_get_valid(png_ptr, info_ptr, PNG_INFO_sBIT)) {
    png_get_sBIT(png_ptr, info_ptr, &sig_bit);
    png_set_shift(png_ptr, sig_bit);
}
Run Code Online (Sandbox Code Playgroud)

像素数据相同。

sBIT chunk的使用模型是什么?我可以以某种方式使用sBIT …

c png libpng

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

如何计算词典列表中项目的出现次数?

我有一个词典列表(缩写).

my_list = [{ 'id':1, 'val':123 }, {'id':2, 'val':456 }, {'id':2, 'val':789 }]
Run Code Online (Sandbox Code Playgroud)

如何计算具有特定键的指定值的字典的出现次数(在本例中为' id')?有没有办法利用计数(my_list.count('id' = 1)?!?)

python python-2.7

5
推荐指数
2
解决办法
2187
查看次数