小编m.d*_*han的帖子

如何生成openssl证书,有效期不到一天?

我正在尝试使用openssl命令创建CA签名的最终实体证书,如下所示,在Linux中:

# openssl genrsa -des3 -out clientkey.pem 2048
# openssl req -new -key clientkey.pem -out clientcert.csr
# cp clientkey.pem clientkey.pem.org
# openssl rsa -in clientkey.pem.org -out clientkey.pem
# openssl x509 -req -days 1 -in clientcert.csr -out clientcert.pem -CA cacert.pem -CAkey cakey.pem -CAcreateserial
Run Code Online (Sandbox Code Playgroud)

是否可以以小时而不是天来指定到期时间?我需要生成证书,比如1小时的到期时间,以进行一些测试.

Openssl命令似乎支持一些指定startdate和enddate的选项,但我无法弄清楚如何使用它.(我假设enddate可能支持指定日期和时间).

#openssl x509 -req -startdate 120814050000Z -enddate 120814060000Z -in clientcert.csr -out clientcert.pem -CA cacert.pem -CAkey cakey.pem -CAcreateserial

unknown option 120814050000Z
usage: x509 args
.
.
-startdate      - notBefore field
-enddate        - notAfter field
.
.
-days arg …
Run Code Online (Sandbox Code Playgroud)

linux openssl

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

用gdb检查boost shared_ptr

以下是我的源代码:

#include <iostream>
#include <boost/shared_ptr.hpp>

class MyClass
{
    public:
        MyClass()
        {
            i=10;
        }
    private:
        int i;
};


int main(int argc, const char *argv[])
{
    boost::shared_ptr <MyClass> obj(new MyClass());
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

我想检查gdb中的obj,并查看成员变量i的值.

这是我用普通打印得到的:

29          boost::shared_ptr <MyClass> obj(new MyClass());
(gdb) n
30          return 0;
(gdb) p obj
$1 = {px = 0x602010, pn = {pi_ = 0x602030}}
Run Code Online (Sandbox Code Playgroud)

我尝试了此链接中提到的提示,但无法正常工作.

(gdb) call (obj.get())->print()
Cannot evaluate function -- may be inlined
Run Code Online (Sandbox Code Playgroud)

还有其他方法吗?gdb版本是7.0.1.

c++ boost gdb shared-ptr

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

vim indent:对齐函数参数

vim中的默认对齐方式(使用"=")将我的代码对齐为:

void my_loooong_function (int arg1,
        int arg2,
        int arg3
        )
Run Code Online (Sandbox Code Playgroud)

但是,我希望与从同一行开始的所有参数一致,如:

void my_loooong_function (int arg1,
                          int arg2,
                          int arg3
                         )
Run Code Online (Sandbox Code Playgroud)

如何才能做到这一点?

vim vim-plugin

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

svn:使用vim来合并冲突

我正在尝试看看svn中的合并是如何变得容易的.

页面提到可以使用外部工具进行合并.vim可以用作外部合并工具吗?

一些额外要求:

  1. 文件应水平/垂直分割,以提供更好的视图.
  2. 应适当设置窗口标题.

例如:如 在此输入图像描述

svn vim

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

inotify事件IN_MODIFY为tftp put发生两次

我正在使用inotify来监听对文件的修改.

当我测试文件修改时,程序运行正常.

# echo "test" > /tftpboot/.TEST

Output:
Read 16 data
IN_MODIFY
Run Code Online (Sandbox Code Playgroud)

但是当我执行tftp put时,会生成两个事件:

tftp>  put .TEST
Sent 6 bytes in 0.1 seconds
tftp>

Output:
Read 16 data
IN_MODIFY
Read 16 data
IN_MODIFY
Run Code Online (Sandbox Code Playgroud)

知道如何避免重复通知吗?

代码如下:

#include <sys/inotify.h>
#include <stdio.h>
#include <stdlib.h>
#include <errno.h>
#include <sys/types.h>
#include <iostream>

using namespace std;

int main(int argc, const char *argv[])
{
    int fd = inotify_init();
    if (fd < 0)
    {
        cout << "inotify_init failed\n";
        return 1;
    }
    int wd = inotify_add_watch(fd, "/tftpboot/.TEST", IN_MODIFY);
    if …
Run Code Online (Sandbox Code Playgroud)

c linux file inotify tftp

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

vim:为拆分窗口设置不同的状态行

当我打开2个水平分割文件时,每个窗口都有自己的状态行.

例如用命令

vim -o a.txt b.txt
Run Code Online (Sandbox Code Playgroud)

我将获得第一个窗口的状态行为"a.txt",第二个窗口为"b.txt".

我需要从命令行调用vim,我需要设置一个自定义状态行,并且我希望每个窗口都有不同的状态行.

vim -o -c "set statusline=hello" a.txt b.txt
Run Code Online (Sandbox Code Playgroud)

我得到"你好"作为两个窗口的状态.

如何将"hello"作为第一个窗口的状态行,将"world"作为第二个窗口,我该怎么做; 从命令行调用vim时?

此命令不起作用:

vim -o -c "set statusline=hello" a.txt -c "set statusline=world" b.txt
Run Code Online (Sandbox Code Playgroud)

请帮忙.

vim

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

如何在查看文件之间中止vimdiff?

在我的.subversion/config文件中,我设置diff-cmd了一个调用vimdiff查看更改的脚本.

以下是我的问题:我正在查看两个svn URL之间的差异,其中有10个文件被修改.该svn diff url1 url2命令将打开第一个文件的差异.发布:vim中的qa会显示第二个文件的差异.现在,有没有办法完全退出vim,中止进一步查看差异(除了运行:qa剩余8次)?

更新:以下是我的脚本:

#!/bin/sh 

# use vimdiff to view diffs
DIFF="/usr/bin/vimdiff -o"


NUM=$#  # number of arguments
LEFT=${6} # old file
RIGHT=${7} # new file
L_TITLE=${3} # actual name and revision of old file
R_TITLE=${5} # actual name and revision of new file
ST="${L_TITLE}"

# get the file name
NAME=`echo $ST | tr -s ' ' '\n' | head -1` 
L_BRANCH=`echo $L_TITLE | tr -s ' ' '\n' …
Run Code Online (Sandbox Code Playgroud)

svn vim diff

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

是否可以在vim中显示网格?

我在Vim 7中使用DrawIt插件绘制一些ascii图.

这可能太多了,但仍然 - 是否有任何插件可以在背景中显示网格,以使绘图更容易?

vim vim-plugin

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

如何在C中包含"%"的字符串上执行strcmp?

我有一个解析配置文件的C程序.配置文件允许格式化一些wildchars option=%any.

问题是,当我使用strcmp比较值时,我得到一个非法的指令错误.

示例程序来说明这一点:

char str1[10];
sprintf(str1,"%any");

if(strcmp(str1,"%any") == 0) 
        printf("match\n");

return 0;
Run Code Online (Sandbox Code Playgroud)

输出:

$ ./a.out
Illegal instruction
Run Code Online (Sandbox Code Playgroud)

printf也会抛出此错误.

使用printf("%s \n",str1);

输出是:

$ ./a.out
0x0.07fff00000001p-1022ny
Illegal instruction
Run Code Online (Sandbox Code Playgroud)

我尝试转义,即在sprintf中使用"\%any"而不是"%any"; 但这没有用.

在C++中,使用std :: string ==比较,使用cout打印似乎工作正常.

有人可以帮助我找出如何用C做到这一点.

c unix linux

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

脚本SSH到机器并做SCP

我有一个场景 -

我将登录machineA.从那里我需要ssh到machineB.从machineB我必须将文件复制到machineC.

我试图一步到位:

[user@machineA]$ ssh user@machineB "scp /path/to/file root@machineC:"
Run Code Online (Sandbox Code Playgroud)

但是此命令失败并出现错误:

Host key verification failed. lost connection
Run Code Online (Sandbox Code Playgroud)

有人可以帮忙吗?

我需要这个才能真正使用.

我在machineA中进行开发,所以我将在这里进行编码和交叉编译.我需要将我的交叉编译二进制文件复制到machineC进行测试.但是,直接连接machineA - > machineC将无法正常工作.我需要在两者之间使用machineB.

此外,machineB和machineA是镜像的; 所以我不必将我的文件从machineA明确复制到machieB.我不使用machineB进行开发只是因为它位于远程站点并且速度很慢.

ssh scp

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

宏中“static_cast&lt;void&gt;”有什么用?

我看到这样的宏定义:

#define ASSERT_VALID_PARAM(param, assertion) {  static_cast<void>(param); if (!(assertion)) { throw InvalidParamError(#param, #assertion, __FILE__, __PRETTY_FUNCTION__, __LINE__); } }
Run Code Online (Sandbox Code Playgroud)

我无法弄清楚static_cast<void>(param)这里的需要。知道为什么需要这个吗?

c++ casting

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

是否需要执行权限才能cd到unix中的目录?

我的印象是,除非您拥有目录的执行权限,否则无法搜索该目录或对其执行cd.

但我尝试删除目录的执行权限,我仍然可以进入该目录.那么,目录执行权限的真正用途是什么?

# mkdir tmp
# ll
total 4
drwxr-xr-x 2 root root 4096 Jul 13 13:52 tmp
# chmod 0600 tmp
# ll
total 4
drw------- 2 root root 4096 Jul 13 13:52 tmp
# cd tmp/
Run Code Online (Sandbox Code Playgroud)

unix linux permissions

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

评估存储在数组中的表达式

我有一个与sign(+/-)和数字交错的数组.有没有办法在ruby中评估这个数组?

例如:["+", 1, "+", 2, "+", 3].这需要进行评估,即6在上述情况下进行评估.

更多例子:

["+", 1, "+", 2, "+", 3] ->  6
["+", 1, "+", 2, "-", 3] ->  0
["-", 1, "-", 2, "-", 3] -> -6
Run Code Online (Sandbox Code Playgroud)

ruby

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

标签 统计

vim ×5

linux ×4

c ×2

c++ ×2

svn ×2

unix ×2

vim-plugin ×2

boost ×1

casting ×1

diff ×1

file ×1

gdb ×1

inotify ×1

openssl ×1

permissions ×1

ruby ×1

scp ×1

shared-ptr ×1

ssh ×1

tftp ×1