小编ber*_*p99的帖子

是否有针对此 Broken Pipe 错误的解决方法?

当我运行以下脚本时:

#!/bin/bash
cat /dev/urandom | tr -dc '[:graph:]' | head -c 64
Run Code Online (Sandbox Code Playgroud)

(它应该打印 64 个随机字符,它确实如此)

我得到以下输出:

Kn5Thh'H]F2NMG3^2(T*GdH]C+|Y0uj%C?LGFo=9d9o%vcP9k~6u~Q&exr`RuQv{./myScript: line 2: 21677 Broken Pipe             cat /dev/urandom
     21678                       | tr -dc '[:graph:]'
     21679 Done                    | head -c 64
Run Code Online (Sandbox Code Playgroud)

为什么我收到Broken Pipe错误?是不是因为cat没有完成打印但head已经完成,所以它发送了一个SIGPIPE?

我如何避免这种情况?

bash pipe

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

如何编写返回仅存在于类中的类型的成员函数?

我实际上是在C++中实现一个双向链表.

这是一个MWE的种类:

namespace mynamespace {

template <typename T>
class List {
public:
    List();

    void prepend(T);
    void append(T);
    void remove(T);

private:
    struct Node {
        T value_;
        Node * prev_;
        Node * next_;
    };

private:
    Node * find(T); // <-- THIS IS MY PROBLEM

private:
    Node * head_;
    Node * tail_;
};

}
Run Code Online (Sandbox Code Playgroud)

我想创建该函数的原因是因为我认为如果我能用这样的函数遍历列表,直到我找到一个给定的元素(我需要对remove()函数执行相同的操作),它会很方便.

但是如何在定义之外定义该函数class?

由于Node是List该类的私有成员,因此无效:

template <typename T>
Node * List<T>::find(T val)
{
    // stuff
}
Run Code Online (Sandbox Code Playgroud)

我想定义函数里面的class定义会的工作,因为Node有道理那里...那是要正确的方法是什么?即便如此,我想必须有一种方法来定义函数我正在尝试的方式......

c++ list

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

标签 统计

bash ×1

c++ ×1

list ×1

pipe ×1