当前位置: 首页 > 知识库问答 >
问题:

如何用c语言准确描述进程状态(如初始化、运行、等待等)?

邢飞雨
2023-03-14

这些状态是基于linux操作系统的进程状态定义的,以等待为例,当一个进程没有从外部读取数据,没有向外部写入数据,也没有在内部计算时,困难在于我如何知道这个进程现在没有计算,如何用c编程语言实现它?(如果进程没有从外部读取,它可能会返回一个读取错误,我知道它现在没有读取,写入也是如此)。例如:读取(int fd,void*buf,size_t const)写入

共有1个答案

商嘉木
2023-03-14

在C中,你不能用语言独立的方式来做这件事,因为C没有过程的概念。

但是,在 C 程序可以访问可以启动线程/进程的库(例如 Linux)的所有合理情况下,进程启动调用通常会返回父程序启动的进程(“进程”)“句柄”(或某些代表性)。

具有启动进程的过程的同一个库,总是会有一个使用进程句柄检查已启动进程状态的过程。

我不熟悉Linux的库(我怀疑有好几个)。如果您已经设法启动了一个子流程,那么您一定正在使用一个。继续阅读其他库元素,直到找到一个返回进程状态的元素。

 类似资料:
  • 我们试图构建一个用例,其中来自流的数据通过计算公式运行,但公式本身也应该(很少)是可更新的。从阅读文档来看,在我看来,Flink broadcast state自然适合这种情况。 作为一个实验,我构建了一个简化的版本:假设我有一个整数流,第二个流包含这些整数的乘法因子(我可以随意发送值)。第二个流的频率很低,很容易在事件之间的几天或几周内出现。目前,这两个都实现为简单的套接字服务器,最终产品将使用

  • 我正在开发基于Apache Flink的金融反欺诈系统。我需要根据金融交易计算许多不同的总量。我使用Kafka作为流数据源。例如,在平均交易金额计算中,我使用MapState存储总交易计数和每张卡的总金额。存储在Apache Accumulo的聚合数据。我知道Flink中的持久状态,但这不是我需要的。在计算开始之前,有没有办法将初始数据加载到Flink中?是否可以通过使用两个连接的流和来自Accu

  • 我想创建一个基于JavaFx WebEngine的自定义FunctionPlotter组件。我的情节将在浏览器中显示。在执行plot命令之前,我必须等待浏览器初始化(它加载d3.js)。目前,我这样做的方法是将我的绘图表达式放入一个Runnable中,并将该Runnable传递给FunctionPlotter。(FunctionPlotter将runnable传递给浏览器的loading fini

  • 问题内容: 将log4j添加到我的应用程序后,每次执行我的应用程序时,都会得到以下输出: 看来这意味着缺少配置文件。此配置文件应位于何处,什么是良好的入门内容? 我使用纯Java开发桌面应用程序。因此没有网络服务器等… 问题答案: 默认情况下,在上查找名为或的文件。 您可以按照此处所述通过设置系统属性来控制它用来初始化自身的文件(查找“默认初始化过程”部分)。 例如: 将导致在类路径上查找名为的文

  • 我想在部署初始化成功后运行特定的命令。 这是我的yaml文件: 不过,我希望在成功初始化部署并运行POD之后(而不是之前)运行db迁移命令。 我可以为每个pod手动执行(使用kubectl exec),但这不是很好的扩展性。

  • 问题内容: 我有一个正在Linux上运行的C ++应用程序,我正在对其进行优化。如何确定我的代码哪些区域运行缓慢? 问题答案: 如果您的目标是使用探查器,请使用建议的探查器之一。 但是,如果您急于在主观上很慢的情况下在调试器下手动中断程序,则有一种简单的方法可以查找性能问题。 暂停几次,每次查看调用堆栈。如果有一些代码浪费了一定百分比的时间(20%或50%或其他),那么这就是您在每次采样时都将其捕