小编bad*_*dri的帖子

Linux errno 23和Linux errno 24之间的区别

  1. 这2个linux错误有errno.h什么区别?23和24

    我尝试了2个不同的网站,但无法理解两者之间的区别.


    [EMFILE]
    Too many open files.
    [ENFILE]
    Too many files open in system.
    
    Run Code Online (Sandbox Code Playgroud)
    # define ENFILE      23  /* File table overflow */
    # define EMFILE      24  /* Too many open files */
    
    Run Code Online (Sandbox Code Playgroud)
  2. 此外,我得到错误24和套接字呼叫在第974次失败.(AF_INETUDP数据报套接字)

    当我做了一个cat /proc/sys/fs/file-max我看到值334076 ulimit -n显示1024

    知道可以做些什么来增加限制吗?

c sockets linux errno error-code

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

如何修复 Werror=parentheses(建议在赋值周围使用括号)错误?

我有一行代码可以同时执行赋值和条件。我可以将它分成两行,但我只是对抛出的错误消息感到好奇。

  if ( parameters->__size = m_Elements.size() ) 
Run Code Online (Sandbox Code Playgroud)

得到这个错误:建议在赋值周围使用括号作为真值 [-Werror=parentheses]

我试过:

   if ( (parameters->__size) = (m_Elements.size()) )
Run Code Online (Sandbox Code Playgroud)

错误不会消失。但我觉得我已经完成了我被提示做的事情,并在作业周围添加了括号。为什么错误没有消失?我错过了什么?

c++ c++11

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

重置boost累加器c++

由于没有找到在 C++ 中重置累加器的“升压”方法,我遇到了一段似乎重置升压累加器的代码。但不明白它是如何实现的。代码如下 -

#include <iostream>
#include <boost/accumulators/accumulators.hpp>
#include <boost/accumulators/statistics/stats.hpp>
#include <boost/accumulators/statistics/mean.hpp>
using namespace boost::accumulators;

template< typename DEFAULT_INITIALIZABLE >
inline void clear( DEFAULT_INITIALIZABLE& object )
{
        object.DEFAULT_INITIALIZABLE::~DEFAULT_INITIALIZABLE() ;
        ::new ( boost::addressof(object) ) DEFAULT_INITIALIZABLE() ;
}

int main()
{
    // Define an accumulator set for calculating the mean 
    accumulator_set<double, stats<tag::mean> > acc;

    float tmp = 1.2;
    // push in some data ...
    acc(tmp);
    acc(2.3);
    acc(3.4);
    acc(4.5);

    // Display the results ...
    std::cout << "Mean:   " << mean(acc) << std::endl;
    // clear …
Run Code Online (Sandbox Code Playgroud)

c++ boost boost-accumulators

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

如何在python中打印闪烁的文本

colorama 是一个通用的包,可以独立于平台工作。但它似乎不支持闪烁文本。任何其他方式可以在 python 中实现?

python text blink

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

cppcheck的棘手情况

我面临的情况是我需要通过cppcheck但有时会变得棘手.在这种情况下你通常做什么?例如.

#include<iostream>
using namespace std;
void fun1();
int fun2();
int main()
{
        fun1();
}

void fun1()
{
        int retVal;
        if (-1 == (retVal = fun2()))
        {
                cout <<"Failure. fun2 returned a -1"<< endl;
        }
}

int fun2()
{
        return -1;
}
Run Code Online (Sandbox Code Playgroud)

我们通常会看到如上所述的代码.cppcheck上面的文件会给出如下输出 -

cppcheck --suppress = redundantAssignment --enable ='警告,样式,性能,可移植性' - inline-suppr --language ='c ++'retval_neverused.cpp检查retval_neverused.cpp ... [retval_neverused.cpp:13] :( style)变量'retVal'被赋予一个从未使用过的值.

我不想仅仅为了cppcheck添加一些虚拟行打印retVal.事实上,它可能是我抛出异常的情况,我不希望异常在其中具有一些微不足道的值作为retVal的值.

c++ cppcheck

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

信号量何时初始化为 0?

我看到一段代码中使用了 0 值。我们使用值 1 表示二进制信号量,使用值 N 表示计数信号量。不知何故,0 的值对我来说没有意义。

/* Initialise the semaphore to be blocked. */

sem_t sem; 
sem_init(&sem, 0, 0);
Run Code Online (Sandbox Code Playgroud)

代码是用C语言编程的。然后像往常一样,我们在代码中的其他地方有 sem_wait、sem_post 和 sem_destroy。

如果使用 0 或 1 都可以,那么为什么这个程序不运行 -

#include <stdio.h>
#include <pthread.h>
#include <semaphore.h>
#include <unistd.h>

sem_t mutex;

void* thread(void* arg)
{
        //wait
        sem_wait(&mutex);
        printf("\nEntered..\n");

        //critical section
        sleep(4);

        //signal
        printf("\nJust Exiting...\n");
        sem_post(&mutex);
}


int main()
{
        sem_init(&mutex, 0, 0);
        pthread_t t1,t2;
        pthread_create(&t1,NULL,thread,NULL);
        sleep(2);
        pthread_create(&t2,NULL,thread,NULL);
        pthread_join(t1,NULL);
        pthread_join(t2,NULL);
        sem_destroy(&mutex);
        return 0;
}
Run Code Online (Sandbox Code Playgroud)

如果使用 sem_init(&mutex, 0, 1); 完成 sem_init,也会运行相同的代码。

c

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

在 C++ 中的向量中使用 push_back vs at

对在 C++ 中使用向量有疑问。它与向量中的 push_back 方法有关。对于第一个程序,我使用 push_back 将元素插入到向量中。对于第二个程序,我使用 at() 将元素插入到向量中。

#include <iostream>
#include <vector>
#include <string>
using namespace std;
int main ()
{
  std::vector<string> myvector (3);

  cout << "In main" << endl;
  for (unsigned i=0; i<myvector.size(); i++)
  {
    myvector.push_back("hi");  //Note: using push_back here.
  }
  cout << "elements inserted into myvector" << endl;

  std::cout << "myvector contains:" << endl;
  for (auto v: myvector)
     cout << v << endl;

  // access 2nd element
  cout << "second element is " << myvector[1] << endl; …
Run Code Online (Sandbox Code Playgroud)

c++ c++11

0
推荐指数
2
解决办法
153
查看次数

标签 统计

c++ ×4

c ×2

c++11 ×2

blink ×1

boost ×1

boost-accumulators ×1

cppcheck ×1

errno ×1

error-code ×1

linux ×1

python ×1

sockets ×1

text ×1