当前位置: 技术问答>linux和unix
linux开发中经常碰到的两个小问题求助
来源: 互联网 发布时间:2016-11-19
本文导语: linux开发中经常碰到的两个小问题求助: 1. 如何通过代码来判断系统中的某个进程(譬如stunnel)是否启动? 2. 如何通过代码来获取当前进程对某个特定文件描述符fd的访问权限(读写执行)? 这两个问题,...
linux开发中经常碰到的两个小问题求助:
1. 如何通过代码来判断系统中的某个进程(譬如stunnel)是否启动?
2. 如何通过代码来获取当前进程对某个特定文件描述符fd的访问权限(读写执行)?
这两个问题,群里的哪位大侠会啊? 望解答一下,最好有实现的demo,不要只说说函数。谢谢
1. 如何通过代码来判断系统中的某个进程(譬如stunnel)是否启动?
2. 如何通过代码来获取当前进程对某个特定文件描述符fd的访问权限(读写执行)?
这两个问题,群里的哪位大侠会啊? 望解答一下,最好有实现的demo,不要只说说函数。谢谢
|
上面的2说错了是fstat()
代码大概是这样子
#include
#include
int func()
{
FILE* fp = NULL;
int iRet = 0;
char strcmd[1024];
char strproname[1024];
sprintf(strproname,"name");
sprintf(strcmd,"ps -ef | grep %s | grep -v grep |wc -l", strproname);
if (NULL == (fp = popen(strcmd, "r")))
{
printf("Failed to execute command:%s", strcmd);
return -1;
}
fscanf(fp, "%d", &iRet);
pclose(fp);
return iRet;
}
int dstat(int fd)
{
struct stat st;
int iRet = -1;
iRet = fstat(fd, &st);
if (-1 == iRet)
{
return -1;
}
return st.st_mode;
}
代码大概是这样子
#include
#include
int func()
{
FILE* fp = NULL;
int iRet = 0;
char strcmd[1024];
char strproname[1024];
sprintf(strproname,"name");
sprintf(strcmd,"ps -ef | grep %s | grep -v grep |wc -l", strproname);
if (NULL == (fp = popen(strcmd, "r")))
{
printf("Failed to execute command:%s", strcmd);
return -1;
}
fscanf(fp, "%d", &iRet);
pclose(fp);
return iRet;
}
int dstat(int fd)
{
struct stat st;
int iRet = -1;
iRet = fstat(fd, &st);
if (-1 == iRet)
{
return -1;
}
return st.st_mode;
}