c - 停止自己的进程

标签 c linux

相关代码非常庞大,因此很抱歉我无法将其发布在这里。问题是:- 我写了一个小程序如下:

#include<stdio.h>
#include<sys/types.h>
#include<unistd.h>
#include<signal.h>
int main()
{
printf("\n Process id",getpid());
fflush(stdout);
if(kill(getpid(),SIGSTOP)!=0)
    printf("\nError");
}

运行后我得到以下 o/p:

进程号 2664

[1]+ 停止./test_SIGSTOP

[目录路径]$

这正是我们所期望的。但是在我说的实际程序中,控制权就在 kill 调用之上(我知道它,因为我有打印语句并 fflushed 它们)并且挂起而没有自动停止进程和命令提示符的出现。 将不胜感激指点。 谢谢

最佳答案

您可以将调试器附加到正在运行的程序并找出它挂起的位置/原因。此外,raise() 函数使用起来更方便。但首先,使用 ps 并检查进程的标志以确认其状态(运行/休眠/停止)。

关于c - 停止自己的进程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6105831/

相关文章:

c++ - 读取某些文件时出现段错误,似乎与文件大小无关

c - 想要将一些数据写入 abc.txt 文件的特定行号。如何不使用 fseek 或 fwrite 移动到特定行?

c - 关于 C 语言中指针的相同输出

c - 如何使用 C 阻止退格键出现在 nCurses 中?

python - 为 python 2.7 安装 mod_wsgi 时出错

linux - Trac 在哪里存储它的环境信息

c - 如何释放c中双向链表程序的内存

c - Lua中返回C指针时返回lua_integer类型而不是lightuserdata可以吗?

java - 在 Fedora 20 Linux 上启动 jdeveloper 时的 Sigenv

linux - 如何检查服务和服务器是否可用?