在我的程序中,我有几个连接到stdout和stderr子进程流的管道(即在主进程中我正在从这些流中读取).但是,如果没有任何东西可以从其中一个中读取,我的程序就会挂起.有没有办法解决这个问题不使用线程.此外,如果在xmsecs 期间没有任何内容可读,我希望所有子进程都被杀死.
在unix中,select()+ non_blocking read解决了这两个问题.但是窗户怎么样?
我有课Graph和Algorithm:
class Graph
{
...
};
class Algorithm
{
...
private:
Graph * mGraph;
...
};
Run Code Online (Sandbox Code Playgroud)
我希望我的算法mGraph除了删除它之外能够做任何事情.即我想检测(在编译时)算法中的某处我正在删除图形.有这么好的(优雅)方式做这样的事情吗?(我实现的唯一方法是将Graph析构函数设为私有,因此只有朋友类才有权删除它)
在我的C/C++程序中,我需要检查我读到的文件是否已被覆盖(其inode已更改或添加了一些新行).如果我现在错了fstat,fstat64只有当我使用Linux但不能用于Windows时才有用.是否有任何通用(适用于复杂的操作系统)方式来做到这一点?而且你能告诉我如何使用fstat64吗?
是否有简单的方法可以使用其进程ID(pid_t在Linux和PROCESS_INFORMATION::dwProcessIdWindows中)终止进程?
在我的代码中,我必须选择这两个表达式中的一个(其中mask和i非常数整数-1 < i < (sizeof(int) << 3) + 1).我不认为这会使我的程序的性能更好或更差,但这对我来说非常有趣.你知道哪个更好,为什么?