小编osg*_*sgx的帖子

服务不支持chkconfig

美好的一天,程序员.我有个问题.请帮忙.我正在创建一个服务,它必须在加载Linux时自动加载.因此,我将脚本复制到目录/etc/rc.d/init.d或/etc/init.d/中.但是当我正在执行命令时

chkconfig --add listOfProcesses
Run Code Online (Sandbox Code Playgroud)

发生错误:

service  listOfProcesses doesn't support chkconfig
Run Code Online (Sandbox Code Playgroud)

这是脚本的内容.我在Google中找到了第一个版本并将其用作模式.

#!/bin/bash
# listOfProcesses   Start the process which will show the list of processes
# chkconfig: 345 110 02
# description: This process shows current time and the list of processes
# processname: listOfProcesses
### BEGIN INIT INFO
# Provides:
# Required-Start:
# Required-Stop:
# Default-Start: 3 4 5
# Default-Stop: 0 1 2 6
# Short-Description: shows current time and the list of processes
# Description: This process shows …
Run Code Online (Sandbox Code Playgroud)

linux bash

33
推荐指数
2
解决办法
7万
查看次数

删除[]一个对象数组

我已分配和对象数组

Objects *array = new Objects[N];
Run Code Online (Sandbox Code Playgroud)

我该如何删除这个数组?只是

delete[] array;
Run Code Online (Sandbox Code Playgroud)

或者迭代数组的元素?

for(int i=0;i<N;i++)
    delete array[i];
delete[];
Run Code Online (Sandbox Code Playgroud)

谢谢

更新:

我改变了循环体

delete &array[i];
Run Code Online (Sandbox Code Playgroud)

强制代码编译.

c++ arrays new-operator delete-operator

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

C++,没有<vector>的对象数组

我想在C++中创建一个不使用STL的对象数组.

我怎样才能做到这一点?

我怎么能创建Object2数组,它没有无参数构造函数(默认构造函数)?

c++ arrays

31
推荐指数
4
解决办法
7万
查看次数

C/C99/C++/C++ x/GNU C/GNU C99中枚举的签名

enum类型是签名还是未签名?枚举的签名是否在C/C99/ANSI C/C++/C++ x/GNU C/GNU C99中有所不同?

谢谢

c c++ enums signed

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

编译器是否允许消除无限循环?

可以优化编译器删除无限循环,这不会改变任何数据,如

while(1) 
  /* noop */;
Run Code Online (Sandbox Code Playgroud)

从分析编译器可以推导出的数据流图,这样的循环是"死代码"而没有任何副作用.

是否删除了C90/C99标准禁止的无限循环?

C90或C99标准是否允许编译器删除此类循环?

更新:"Microsoft C版本6.0基本上做了这个优化.",请参阅caf的链接.

label: goto label;
return 0;
Run Code Online (Sandbox Code Playgroud)

将转变为

return 0;
Run Code Online (Sandbox Code Playgroud)

c compiler-construction optimization standards infinite-loop

30
推荐指数
3
解决办法
5512
查看次数

什么是perf缓存事件的含义?

我试图弄清楚为什么修改后的C程序比未修改的计数器部分运行得更快(我添加了很少的代码行来执行一些额外的工作).在这种情况下,我怀疑" 缓存效应 "是主要的解释(指令缓存).因此,我到达perf(https://perf.wiki.kernel.org/index.php/Main_Page)分析工具,但遗憾的是我无法理解其有关缓存未命中的输出的含义.

提供了几个关于缓存的事件:

  cache-references                                   [Hardware event]
  cache-misses                                       [Hardware event]
  L1-dcache-loads                                    [Hardware cache event]
  L1-dcache-load-misses                              [Hardware cache event]
  L1-dcache-stores                                   [Hardware cache event]
  L1-dcache-store-misses                             [Hardware cache event]
  L1-dcache-prefetches                               [Hardware cache event]
  L1-dcache-prefetch-misses                          [Hardware cache event]
  L1-icache-loads                                    [Hardware cache event]
  L1-icache-load-misses                              [Hardware cache event]
  L1-icache-prefetches                               [Hardware cache event]
  L1-icache-prefetch-misses                          [Hardware cache event]
  LLC-loads                                          [Hardware cache event]
  LLC-load-misses                                    [Hardware cache event]
  LLC-stores                                         [Hardware cache event]
  LLC-store-misses                                   [Hardware cache event]
  LLC-prefetches                                     [Hardware cache event]
  LLC-prefetch-misses                                [Hardware cache event]
  dTLB-loads                                         [Hardware cache event] …
Run Code Online (Sandbox Code Playgroud)

c linux perf

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

什么是内存映射页面和匿名页面?

我无法理解linux中的内存映射页面和匿名页面.有人可以用一个例子解释一下吗?与它们相关的内核数据结构是什么?

linux memory-management linux-kernel

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

上下文切换的开销是多少?

最初我认为上下文切换的开销是TLB被刷新.但是我刚刚在维基百科上看到:

http://en.wikipedia.org/wiki/Translation_lookaside_buffer

2008年,英特尔(Nehalem)[18]和AMD(SVM)[19]都引入了标签作为TLB条目的一部分,以及在查找期间检查标签的专用硬件.即使这些没有得到充分利用,但可以设想,将来这些标签将识别每个TLB条目所属的地址空间.因此,上下文切换不会导致刷新TLB - 而只是将当前地址空间的标记更改为新任务的地址空间的标记.

以上是否确认较新的Intel CPU TLB不会在上下文切换时刷新?

这是否意味着现在在上下文切换中没有真正的开销?

(我试图理解上下文切换的性能损失)

linux virtualization performance operating-system context-switch

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

gprof:如何为链接到主程序的共享库中的函数生成调用图

我正在研究Linux环境.我有两个'C'源包train和test_train.

  1. 编译时训练包生成libtrain.so
  2. test_train链接到libtrain.so并生成可执行的train-test

现在我想用gprof生成一个调用图,它显示了主程序中函数的调用顺序以及libtrain.so中的函数调用顺序.

我正在使用-pg选项编译和链接两个包,调试级别为o0.在我执行./train-test之后,生成gmon.out.然后我做:

$ gprof -q ./train-test gmon.out
Run Code Online (Sandbox Code Playgroud)

这里,输出显示列车测试中的函数调用图,但不显示libtrain.so中的调用图

可能是什么问题呢 ?

c debugging profiling gprof sprof

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

用于没有ECC的平台的软件存储器位翻转检测

大多数可用的桌面(廉价)x86平台现在仍然没有ECC内存支持(错误检查和纠正).但内存位翻转错误的速度仍在增长(不是最好的SO线程,大规模CERN 2007研究"数据完整性":" 内存模块的误码率为10 -12 ...观察到的错误率是4个订单低于预期 "; 2009年Google的"DRAM中的错误:大规模的实地研究").对于当前的硬件与数据密集的负荷(读数8 GB/s)的,这意味着单个位翻转,可能会出现每分钟(10家-12在两天厂商BER从CERN07)或一次(10 -16来自CERN07的BER).Google09表示,每Mbit可以有高达25000-75000的一位FIT(每十亿小时的故障时间),相当于8GB RAM每小时1-5位错误(" 2000的平均可纠正错误率 -每GB每年6000 "".

所以,我想知道,是否可以在系统范围内添加某种软件错误检测(检查用户和内核内存).例如,为Linux内核和/或系统编译器创建一个补丁,为每个内存页面添加一些校验和,并尝试通过定期重新计算校验和来检测静默内存损坏(bit-flips)?

例如,我们可以看到对内存的所有写入(来自用户和内核空间),以区分内存位翻转中的预期内存更改吗?或者我们能以某种方式用一些帮助来检测所有代码吗?

我知道任何类型的软件内存ECC可能会花费很多性能并且不会捕获所有错误,但我认为在它们将在以后的计算中重用或存储之前,至少检测一些内存位翻转是有用的.到硬盘.

我也明白,更好的数据保护方式是从内存bitflip切换到ECC硬件,但大多数PC仍然是非ECC.

memory error-detection linux-kernel

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