小编mah*_*ood的帖子

在Linux中更改默认shell

如何更改默认shell?该env命令目前说:

SHELL=/bin/tcsh
Run Code Online (Sandbox Code Playgroud)

我想把它改成Bash.

linux bash shell environment tcsh

300
推荐指数
3
解决办法
51万
查看次数

__FILE__宏显示完整路径

C中可用的标准预定义MACRO __FILE__显示文件的完整路径.有没有办法缩短路径?我的意思是代替

/full/path/to/file.c
Run Code Online (Sandbox Code Playgroud)

我知道了

to/file.c
Run Code Online (Sandbox Code Playgroud)

要么

file.c
Run Code Online (Sandbox Code Playgroud)

c macros file path

152
推荐指数
14
解决办法
12万
查看次数

在case语句中使用{}.为什么?

什么是使用点{}在一个case声明?通常,无论case语句中有多少行,都会执行所有行.这只是关于旧/新编译器的规则还是有背后的东西?

int a = 0;
switch (a) {
  case 0:{
    std::cout << "line1\n";
    std::cout << "line2\n";
    break;
  }
}
Run Code Online (Sandbox Code Playgroud)

int a = 0;
switch (a) {
  case 0:
    std::cout << "line1\n";
    std::cout << "line2\n";
    break;
}
Run Code Online (Sandbox Code Playgroud)

c++ switch-statement

100
推荐指数
3
解决办法
7101
查看次数

如何在Python中使用不带0x的hex()?

hex()python中的函数将前导字符0x放在数字的前面.无论如何要告诉它不要把它们放?所以0xfa230fa230.

代码是

import fileinput
f = open('hexa', 'w')
for line in fileinput.input(['pattern0.txt']):
   f.write(hex(int(line)))
   f.write('\n')
Run Code Online (Sandbox Code Playgroud)

python

76
推荐指数
7
解决办法
11万
查看次数

stdint.h和inttypes.h之间的区别

stdint.h和inttypes.h有什么区别?

如果没有使用它们,则无法识别uint64_t,但使用其中任何一个都是定义的类型.

c uint64 stdint

68
推荐指数
2
解决办法
3万
查看次数

在文件中查找模式并重命名

我使用此命令查找具有给定模式的文件,然后将其重命名为其他内容

find . -name '*-GHBAG-*' -exec bash -c 'echo mv $0 ${0/GHBAG/stream-agg}' {} \;
Run Code Online (Sandbox Code Playgroud)

当我运行此命令时,我看到一些像这样的输出

mv ./report-GHBAG-1B ./report-stream-agg-1B
mv ./reoprt-GHBAG-0.5B ./report-stream-agg-0.5B
Run Code Online (Sandbox Code Playgroud)

但是最后,当我跑步时ls,我看到了旧的文件名.

linux bash

56
推荐指数
3
解决办法
7万
查看次数

递归使用scp但不包括某些文件夹

假设有一些具有这些结构的文件夹

/bench1/1cpu/p_0/image/
/bench1/1cpu/p_0/fl_1/
/bench1/1cpu/p_0/fl_1/
/bench1/1cpu/p_0/fl_1/
/bench1/1cpu/p_0/fl_1/
/bench1/1cpu/p_1/image/
/bench1/1cpu/p_1/fl_1/
/bench1/1cpu/p_1/fl_1/
/bench1/1cpu/p_1/fl_1/
/bench1/1cpu/p_1/fl_1/
/bench1/2cpu/p_0/image/
/bench1/2cpu/p_0/fl_1/
/bench1/2cpu/p_0/fl_1/
/bench1/2cpu/p_0/fl_1/
/bench1/2cpu/p_0/fl_1/
/bench1/2cpu/p_1/image/
/bench1/2cpu/p_1/fl_1/
/bench1/2cpu/p_1/fl_1/
/bench1/2cpu/p_1/fl_1/
/bench1/2cpu/p_1/fl_1/
....
Run Code Online (Sandbox Code Playgroud)

我想要做的是scp以下文件夹

/bench1/1cpu/p_0/image/
/bench1/1cpu/p_1/image/
/bench1/2cpu/p_0/image/
/bench1/2cpu/p_1/image/
Run Code Online (Sandbox Code Playgroud)

如您所见,我想以递归方式使用,scp但不包括名为"fl_X"的所有文件夹.似乎scp没有这样的选择.

UPDATE scp没有这样的功能.相反,我使用以下命令

 rsync -av --exclude 'fl_*' user@server:/my/dir
Run Code Online (Sandbox Code Playgroud)

但它不起作用.它只传输文件夹列表!! 就像是ls -R

bash scp

54
推荐指数
4
解决办法
10万
查看次数

asm/errno.h:没有这样的文件或目录

在构建gcc时,我收到此错误:

In file included from /usr/include/bits/errno.h:25,
             from /usr/include/errno.h:36,
             from ../.././gcc/tsystem.h:96,
             from ../.././gcc/crtstuff.c:68:
/usr/include/linux/errno.h:4:23: error: asm/errno.h: No such file or directory
make[2]: *** [crtbegin.o] Error 1
make[2]: Leaving directory `/opt/gcc-4.1.2/host-x86_64-unknown-linux-gnu/gcc'
Run Code Online (Sandbox Code Playgroud)

我从源代码构建gcc 4.1.我想我必须安装build-essential.但是在ubuntu 12.04中安装该软件包将自动下载并安装gcc 4.6,我不希望这样.

还有其他方法吗?

linux gcc

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

无效使用非静态数据成员

对于像这样的代码:

class foo {
  protected:
    int a;
  public:
    class bar {
      public:
        int getA() {return a;}   // ERROR
    };
    foo()
      : a (p->param)
};
Run Code Online (Sandbox Code Playgroud)

我收到此错误:

 invalid use of non-static data member 'foo::a'
Run Code Online (Sandbox Code Playgroud)

目前该变量a在构造函数中初始化foo.

如果我让它静止,那么它说:

 error: 'int foo::a' is a static data member; it can only be initialized at its definition
Run Code Online (Sandbox Code Playgroud)

但是我想a在构造函数中传递一个值.那么解决方案是什么?

c++

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

清除指针向量

假设我已经定义了这样一个类:

 class foo {
 private: 
    std::vector< int* > v;
 public:
    ...
    void bar1()
    {
       for (int i = 0; i < 10; i++) {
         int *a = new int;
         v.push_back( a );
       }
    };

    void bar2()
    {
       std::vector< int >::iterator it = v.begin();
       for ( ; it != v.end(); it++ )  
         std::cout << (*it);
       v.clear();
    }
 };
Run Code Online (Sandbox Code Playgroud)

简而言之,我在向量中推回一些指针,稍后我清除向量.问题是,这段代码是否有内存泄漏?我的意思是通过清除向量,指针被正确删除?

c++ pointers memory-leaks vector

29
推荐指数
4
解决办法
6万
查看次数

标签 统计

bash ×3

c++ ×3

linux ×3

c ×2

environment ×1

file ×1

gcc ×1

macros ×1

memory-leaks ×1

path ×1

pointers ×1

python ×1

scp ×1

shell ×1

stdint ×1

switch-statement ×1

tcsh ×1

uint64 ×1

vector ×1