小编Chr*_*s H的帖子

git浅克隆到特定标签

我想克隆Linux内核repo,但仅从3.0版本开始,因为内核repo非常庞大,如果我可以做一个浅层克隆,我的版本控制工具运行得更快.我的问题的核心是:我如何告诉git --depth参数的"n"值是什么?我希望这会奏效:

git clone http://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git --depth v3.0

谢谢.

git

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

什么是git format-patch输出的第一行?

在运行git format-patch时,目的是创建您编写的代码的电子邮件表示.到现在为止还挺好.我不是电子邮件专家,但在我看来,这种格式补丁输出的第一行不是标准的电子邮件标题格式......

From de8d128fb520416e0b029c913b3a5ce900d0320c Mon Sep 17 00:00:00 2001
Message-Id: 
From: Christopher Harvey 
Date: Wed, 3 Apr 2013 10:17:52 -0400
Subject: [PATCH 0/3] *** SUBJECT HERE ***
To: Christopher Harvey 

*** BLURB HERE ***

Christopher Harvey (3):
  commit 2
  commit 3
  commit 4

 data | 3 +++
 1 file changed, 3 insertions(+)

-- 
1.7.12.4

是什么From de8d128fb520416e0b029c913b3a5ce900d0320c Mon Sep 17 00:00:00 2001?是什么日期?它看起来对我来说是任意的,它也阻止我将它传递给sendmail.每次我想发送补丁时,我都必须手动删除该行.

谢谢.

git format-patch

20
推荐指数
3
解决办法
2155
查看次数

提升asio io_service.run()

我刚刚浏览了asio 聊天服务器示例.我的问题是他们使用这个io_service.run()功能.该io_service.run()函数的文档说:

run()函数将阻塞,直到所有工作完成,并且不再有调度程序,或者直到io_service已停止.多个线程可以调用run()函数来设置一个线程池,io_service可以从中执行处理程序.在池中等待的所有线程都是等效的,io_service可以选择其中任何一个来调用处理程序.只有在调用reset()之后才能完成run()函数的安全调用.

它表示run函数将返回,并且我假设当它确实返回时,网络线程会停止,直到它再次被调用.如果这是真的,那么为什么不在循环中调用run函数,或者至少给出自己的线程?这个io_service.run()功能对我来说几乎是一个谜.

c++ boost boost-asio

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

如何在Octave中仅计算矩阵乘积的对角线?

Octave有没有办法只计算和存储矩阵乘积的对角线?

基本上喜欢这样做: vector = diag(A*B);

我不关心A*B除了对角线上的任何值.矩阵大小是围绕80k x 1212 x 80k,所以即使我不关心速度/额外的内存它只是惯于适合在RAM中.

奇怪的是,因为Octave是一个包含大量数据集和对角线的包非常重要,所以它应该是可能的.

matlab matrix octave matrix-multiplication diagonal

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

如何通过git format-patch格式化补丁?

我有一系列我想要发送给开源项目的补丁但是我无法弄清楚如何正确格式化电子邮件.我尝试运行git format-patch命令然后将它们全部附加到来自Thunderbird的电子邮件中,但它们都被拒绝了,因为每个补丁本身应该是一个单独的电子邮件.我想避免使用git email命令,因为我在私有的同一个树中有代码,我需要发送一些代码,这意味着我需要能够在发送之前手动查看每封电子邮件.

我想继续使用Thunderbird,但它似乎有问题,因为它包装线并使补丁无法使用.我也尝试过设置fetchmail和mutt,但经过10个小时的阅读和尝试,我放弃了.是否有用于发送git补丁的非fetchmail和非thunderbird解决方案?

git email patch format-patch

14
推荐指数
3
解决办法
3990
查看次数

emacs magit diff突出显示

我刚刚开始使用magit.我非常喜欢它,除了diff查看器对我来说真的很烦人.块突出显示毫无意义,因为当我滚动光标随屏幕移动时,突出显示新区域.在magit diff模式中也没有其他语法高亮显示.有人知道如何禁用块突出显示并获得除灰色白色以外的更好的差异颜色吗?

谢谢.

emacs diff magit

12
推荐指数
3
解决办法
4751
查看次数

设置全局gcc默认搜索路径

跑步的时候

arm-none-linux-gnueabi-gcc -print-search-dirs | grep libraries | sed 's/:/\n/g'
Run Code Online (Sandbox Code Playgroud)

我得到以下输出:

libraries
 =/opt/codesourcery/lib/gcc/arm-none-linux-gnueabi/4.4.1/
/opt/codesourcery/lib/gcc/arm-none-linux-gnueabi/4.4.1/../../../../arm-none-linux-gnueabi/lib/arm-none-linux-gnueabi/4.4.1/
/opt/codesourcery/lib/gcc/arm-none-linux-gnueabi/4.4.1/../../../../arm-none-linux-gnueabi/lib/
/opt/codesourcery/arm-none-linux-gnueabi/libc/lib/arm-none-linux-gnueabi/4.4.1/
/opt/codesourcery/arm-none-linux-gnueabi/libc/lib/
/opt/codesourcery/arm-none-linux-gnueabi/libc/usr/lib/arm-none-linux-gnueabi/4.4.1/
/opt/codesourcery/arm-none-linux-gnueabi/libc/usr/lib/
Run Code Online (Sandbox Code Playgroud)

当交叉编译一些包时,它会使我的生活更容易附加到这些路径.我知道-L选项,我想使用它,但许多软件包在交叉编译时不尊重它,而且使用它与代码源会导致问题.(有关详细信息,请参阅本文末尾).基本上我有一个完整的目录树,其中包含编译包所需的所有文件,我想将该目录树添加到默认搜索路径中.例如,-print-search-dirs也将输出类似于的路径:

/target/usr/lib
/target/lib
Run Code Online (Sandbox Code Playgroud)

除了已经列出的路径.我不是在寻找一个具有代码性的特定答案,因为我有几个可以使用的工具链.

对于那些好奇的人,这是codeourcery安装的错误:

arm-none-linux-gnueabi-gcc test.c
Run Code Online (Sandbox Code Playgroud)

作品

arm-none-linux-gnueabi-gcc -L/usr/arm-unknown-linux-gnueabi/usr/lib test.c 
Run Code Online (Sandbox Code Playgroud)

失败了:

/lib/libc.so.6: file not recognized: File format not recognized
collect2: ld returned 1 exit status
Run Code Online (Sandbox Code Playgroud)

显然它正在抓住主机的libc.我已经看到这种情况发生在一个以上的工具链上,但不是全部.

回应评论: 这是输出

arm-none-linux-gnueabi-gcc -L/usr/arm-unknown-linux-gnueabi/usr/lib test.c -v -Wl,-verbose
Run Code Online (Sandbox Code Playgroud)
Using built-in specs.
Target: arm-none-linux-gnueabi
Configured with: /scratch/julian/2010q1-release-linux-lite/src/gcc-4.4-2010q1/configure --build=i686-pc-linux-gnu --host=i686-pc-linux-gnu --target=arm-none-linux-gnueabi --enable-threads --disable-libmudflap --disable-libssp --disable-libstdcxx-pch --enable-extra-sgxxlite-multilibs --with-arch=armv5te --with-gnu-as --with-gnu-ld --with-specs='%{funwind-tables|fno-unwind-tables|mabi=*|ffreestanding|nostdlib:;:-funwind-tables} %{O2:%{!fno-remove-local-statics: -fremove-local-statics}} %{O*:%{O|O0|O1|O2|Os:;:%{!fno-remove-local-statics: -fremove-local-statics}}}' --enable-languages=c,c++ --enable-shared --disable-lto --enable-symvers=gnu …

gcc glibc cross-compiling codesourcery

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

pygame音频播放速度

快速的问题.

我在linux下运行pygame只是为了播放一些音频文件.我有一些.wav文件,我在以正确的速度回放它时遇到问题.

import pygame.mixer, sys, time

#plays too fast
pygame.mixer.init(44100)
pygame.mixer.music.load(sys.argv[1])
pygame.mixer.music.play()
time.sleep(5)
pygame.mixer.quit()

#plays too slow
pygame.mixer.init(22100)
pygame.mixer.music.load(sys.argv[1])
pygame.mixer.music.play()
time.sleep(5)
pygame.mixer.quit()
Run Code Online (Sandbox Code Playgroud)

我有ggogle代码搜索了一些东西但是每个人似乎都很好用默认参数调用init函数.其他人可以尝试运行此脚本并查看它们是否获得相同的行为?有人知道如何加快速度吗?或者调整每个文件的速度?

谢谢.

python pygame

8
推荐指数
3
解决办法
9046
查看次数

从多个来源流式传输视频

我想得到一些想法,你们中的一些人会如何解决这个问题.我有一个机器人,运行linux并使用网络摄像头(带有v4l2驱动程序)作为其传感器之一.我用gtkmm写了一个控制面板.服务器和客户端都是用C++编写的.服务器是机器人,客户端是"控制面板".图像分析发生在机器人上,我想将视频从摄像机流回控制面板有两个原因:A)有趣B)叠加图像分析结果

所以我的问题是,有什么好的方法可以将视频从网络摄像头传输到控制面板,以及优先使用机器人代码来处理它?我对编写自己的视频压缩方案并将其放入现有的网络端口感兴趣,我认为新的网络端口(专用于视频数据)是最好的.问题的第二部分是如何在gtkmm中显示视频?视频数据是异步到达的,我无法控制gtkmm中的main(),所以我觉得这很棘手.

我愿意使用像vlc,gstreamer或任何其他我不了解的通用压缩库这样的东西.

谢谢!

编辑:该机器人有一个1GHz的处理器,运行像Linux版本的桌面,但没有X11.

c++ gtk robotics vlc v4l2

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

带有否定忽略模式的python copytree

我正在尝试使用python来复制文件/目录树.

是否可以使用copytree复制以foo结尾的所有内容?

有一个ignore_patterns模式函数,我可以给它一个否定的正则表达式吗?他们是否支持python?

例如.

copytree(src,dest,False,ignore_pattern('!*.foo'))在哪里!不是指以foo结尾的任何东西.谢谢.

python regex

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

read(2) 和 write(2) 系统调用在哪里以及为什么从用户空间复制到用户空间?

sendfile(2)最近正在阅读,手册页指出:

   sendfile() copies data between one file descriptor and another.
   Because this copying is done within the kernel, sendfile() is more
   efficient than the combination of read(2) and write(2), which would
   require transferring data to and from user space.
Run Code Online (Sandbox Code Playgroud)

这让我想到,为什么read()/的组合write()更慢?手册页侧重于必须在用户空间之间进行的额外复制,而不是所需的总调用次数。我简短地查看了用于读写的内核代码,但没有看到副本。

为什么副本首先存在?内核不能在write()不首先将整个内容复制到内核空间的情况下从传递的缓冲区中读取吗?

异步 IO 接口如 AIO 和io_uring? 他们也抄袭吗?

c linux-kernel

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

帮助在网页中嵌入一些html

我不太了解css或html,所以我有一个关于采用看起来像这样的html的问题: html代码粘贴并放入另一个页面.

问题是,当我将其复制并粘贴到网页中时,会完全弄乱背景(将其变为黑色)并覆盖其他设置.我如何获取导出的html和css,以便我可以将从emacs导出的代码粘贴到网页中,而不是杀死其他设置?理想情况下,它看起来就像它当前看起来一样,但在页面其余部分的一个小框中.

谢谢.

html css

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

了解 x86-64 调用操作数

我正在查看radare2 中的一些测试代码,但我无法理解反汇编程序如何确定调用指令如何跳转到的位置。考虑一下:

r2

在 0x00001090 处,puts() 被调用。我想自己解析与该指令相关的二进制文件 (e89bffffff),因此我通过 lib capstone 运行它并得到了以下结果:

顶点

所以我们可以看到实际的操作数是0xfb0。然后在 rasm2 中我们有:

# rasm2 -a x86 -b 64 -d e8a1ffffff
call 0xffffffffffffffa6
Run Code Online (Sandbox Code Playgroud)

这是不同的。我预计 libcapstone 和 rasm2 具有相同的输出。

我的主要问题是,如何解释 0xfb0 (或 0xffffffffffffffa6)来获取下一条指令地址?就我而言,根据雷达,sym.imp.puts 位于 0x00001030。

x86 assembly x86-64

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