小编Mar*_*ork的帖子

C中的后台作业(在玩具外壳中实现)

我希望当用户附加一个命令后,它将在后台执行.出于某种原因,如果我正常执行命令它将等待,然后如果我在后台执行命令它将工作,但如果我正常执行命令它将不会等待它.我确信我只是在做一些小错误的事情.有任何想法吗:

void executeSystemCommand(char *strippedCommand, char *background, int argc, char **args) {
    char pathToExecute[80];


    // Check if command will be executed in the background
    int shellArgs;
    bool bg; 
    if (!strcmp(background, "-")) {
        bg = true;
        shellArgs = argc -1; 
    } else {
        bg = false;
        shellArgs = argc;
    }   

    // Save the linux commands in a new array
    char *executableCommands[shellArgs+1];
    int j;
    for (j = 0; j < shellArgs+1; j++) {
        executableCommands[j] = args[j];
    }   
    executableCommands[shellArgs] = NULL;

    // Check the …
Run Code Online (Sandbox Code Playgroud)

c c++ c++11

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

我试图传递一个lambda作为参数

试图将lambda传递给构造函数:

#include <functional>
#include <exception> 

template<typename R>
class Nisse
{
    private:
        Nisse(Nisse const&)             = delete;
        Nisse(Nisse&&)                  = delete;
        Nisse& operator=(Nisse const&)  = delete;
        Nisse& operator=(Nisse&&)       = delete;
    public:
        Nisse(std::function<R> const& func) {}
};

int main()
{
    Nisse<int>   nisse([](){return 5;});
}
Run Code Online (Sandbox Code Playgroud)

当我编译时,我收到一条错误消息:

Test.cpp: In function ‘int main()’:
Test.cpp:19:39: error: no matching function for call to ‘Nisse<int>::Nisse(main()::<lambda()>)’
Test.cpp:19:39: note: candidate is:
Test.cpp:14:9: note: Nisse<R>::Nisse(const std::function<R>&) [with R = int]
Test.cpp:14:9: note:   no known conversion for argument 1 from ‘main()::<lambda()>’ to ‘const std::function<int>&’
Run Code Online (Sandbox Code Playgroud)

c++ lambda c++11 std-function

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

什么在c ++中是什么意思?

我试图理解| =在c ++中,我有示例代码

 int x = 0 ;

 x |= 3;
 std::cout<<x <<std::endl;

 x |= 6;
 std::cout<<x <<std::endl;
Run Code Online (Sandbox Code Playgroud)

输出是:

3
7
Run Code Online (Sandbox Code Playgroud)

这怎么可能,它与位加法有关吗?

c c++

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

如何销毁在堆上创建的stl队列?

根据req我必须在堆上创建stl队列我已经在我的类的构造函数中创建了stl队列,如下面的代码

queue<int> *myqueue;
myqueue=new queue<int>();
Run Code Online (Sandbox Code Playgroud)

现在在析构函数中我想要销毁它:所以我编写了代码

while(!myqueue->empty())
{
    myqueue->pop();
}
Run Code Online (Sandbox Code Playgroud)

请告诉我是否正确的方法来销毁它或者还有其他任何意思可以避免内存泄漏.请注意删除myqueue会给出分段错误.

c++

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

c ++ rand()%100

我试图用随机的200个数字填充数组,这个数字可以从0到100.我把它填充,除了最后一对数字很奇怪.

我的代码.

     for (int i = 0; i < NUM_LIST_ELEMENTS; i++)
 {
    int  j = rand() % 100;

     list[i] = j;

 }
Run Code Online (Sandbox Code Playgroud)

我的输出结果如下

原始数组:

41  67  34   0  69  24  78  58  62  64   5  45  81  27  61  91  95  42  27  36  91   4   2  53  92  82  21  16  18
95  47  26  71  38  69  12  67  99  35  94   3  11  22  33  73  64  41  11  53  68  47  44  62  57  37  59 …
Run Code Online (Sandbox Code Playgroud)

c++ arrays random populate

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

在成员函数调用上获取错误

所以我目前在我的类的构造函数中使用以下代码,它以QMainWindow为基础:

char *name = this->windowTitle().toWCharArray;
Run Code Online (Sandbox Code Playgroud)

代码产生以下错误:

error C3867: 'QString::toWCharArray': function call missing argument list; 
use '&QString::toWCharArray' to create a pointer to member
Run Code Online (Sandbox Code Playgroud)

我不知道如何继续,以便我可以成功获得窗口的标题.

c++ pointers function function-calls

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

在Mac OS X上编译ANSI C++代码

我很难在Mac OS X上编译和运行程序,该程序是使用ANSI/ISO C++(Windows)编写的.源代码

我尝试使用g ++进行编译,并通过导入文件和使用Xcode进行编译.

如果我尝试使用g ++(命令行)进行编译,我会收到一些警告,这很容易修复,:

例如warning: format ‘%d’ expects type ‘int’, but argument 2 has type ‘long unsigned int’.

但是,我也得到了一些奇怪的错误.

如果我创建一个类型为"C++ stdc ++"的简单"命令行工具"项目,并导入该项目中的所有文件,它会给我一堆警告和错误.

谁能帮我编译一下这个示例源代码?感谢期待.

c++ macos compilation ansi

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

C警告运行时的问题?

使用VS 2003生成的用于生成32位二进制文​​件的代码在没有单个警告的情况下构建.

相同的代码,没有单一的代码更改,编译和链接成功使用Visual Studio 2010编译器生成64位二进制BUT与下面的警告列表.

所以,我的问题是,下面列表中的任何警告都是运行时的问题吗?

pcd.c(248) : warning C4996: 'getenv': This function or variable may be unsafe. Consider using _dupenv_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.

pcd.c(377) : warning C4244: '=' : conversion from 'uintptr_t' to 'ULONG', possible loss of data

pcd.c(236) : warning C4100: 'argv' : unreferenced formal parameter


i.c(183) : warning C4100: 'lpReserved' : unreferenced formal parameter

api.c(506) : warning C4996: 'stricmp': The POSIX name for this item is deprecated. Instead, use …
Run Code Online (Sandbox Code Playgroud)

c c++ 64-bit visual-studio-2010

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

如何处理Perl(模糊)错误

我遇到了Perl代码中的错误,这些错误在与错误无关的地方报告.我删除了数小时后修复了一个这样的错误,并逐行重新添加代码然后做了一些试验和错误.下面详述了两个这样的错误.我的问题是:如果将来发生这些问题,有没有办法确保perl编译器帮助我解决这个问题,或者我是否必须用其他语言重写代码.(我正在考虑Java).

我的程序看起来像这样:

use switch;
use strict;
use warnings;
...other modules;
sub log{
}
..various sub routines
switch {$val1)
{
  log(..) #first invocation of log
  case ($val2)
...
}
Run Code Online (Sandbox Code Playgroud)

如果我这样做,现在在子日志中

{
  $val3  = POSIX::floor($val2/$val4)*$val4;
  $val5="/x/y/$logfilename";
}
Run Code Online (Sandbox Code Playgroud)

我得到一个错误,说case语句有错误.如果我移动行$ val5 ="/ x/y/$ logfilename"; 在$ val3之前,没有错误.或者,如果我删除$ val5中的'/',即$ val5 ="x",则没有错误或者如果我说$ val5 = qq(/ x/y/$ logfilename); 没有错误.这次我认为自己很幸运,因为我找到了一个解决方法,但这只是在经过3个小时的斗争之后.有没有办法让perl编译器准确报告错误?

我还有一个类似的案例要报告,如果有必要可以添加.请求输入

debugging perl

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