社区
Linux/Unix社区
帖子详情
用c如何完成判断某个服务是否开启 (请各位指点一下!谢谢)
努力偷懒
2004-12-18 11:54:30
用c如何完成判断某个服务是否开启 (请各位指点一下!谢谢)
我现在没有任何头绪或者方法!请各位指点一下!谢谢!或者告诉我大概要看哪些内容!
...全文
160
8
打赏
收藏
用c如何完成判断某个服务是否开启 (请各位指点一下!谢谢)
用c如何完成判断某个服务是否开启 (请各位指点一下!谢谢) 我现在没有任何头绪或者方法!请各位指点一下!谢谢!或者告诉我大概要看哪些内容!
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
8 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
cizi_nwu
2004-12-20
打赏
举报
回复
我也想知道……
努力偷懒
2004-12-20
打赏
举报
回复
恩!是判断网络服务!不是普通的服务!
nooning
2004-12-20
打赏
举报
回复
服务不只是网络服务吧
努力偷懒
2004-12-20
打赏
举报
回复
Nety2004(~~~oo我不是高手)
说的值得试一下,因为我当时也想了,我可以用bind绑定那个服务的端口,如果绑定成功,说明哪个端口没被使用,如果绑定不成功,那个端口已经被使用!
mhcio
2004-12-20
打赏
举报
回复
自己改一下吧
大致意思就是在/proc下找进程pid
没有找到的话
while循环结束
在while外面加一条就行
找到的话就把状态存入数组中
mhcio
2004-12-20
打赏
举报
回复
如果知道进程名 就可以用下面的代码:
=========================================================================
#include "unistd.h"
#include "dirent.h"
#include "sys/param.h"
#include "sys/types.h"
#include "sys/wait.h"
#include "sys/stat.h"
#include "stdio.h"
//-----------------------------------------------------------------------------
#define READ_BUF_SIZE 50
char sts[READ_BUF_SIZE]; //用来保存进程的状态
//-----------------------------------------------------------------------------
void find_status_by_name(char* pidName)
{
DIR *dir;
struct dirent *next;
FILE *file;
char filename[READ_BUF_SIZE];
char buffer[READ_BUF_SIZE];
char name[READ_BUF_SIZE];
dir = opendir("/proc");
if (!dir)
{
fprintf(stderr, "Cannot open /proc\n");
}
while ((next = readdir(dir)) != NULL)
{
/* Must skip ".." since that is outside /proc */
if (strcmp(next->d_name, "..") == 0)
continue;
/* If it isn't a number, we don't want it */
if (!isdigit(*next->d_name))
continue;
sprintf(filename, "/proc/%s/status", next->d_name);
if (! (file = fopen(filename, "r")) )
{
continue;
}
/* Read first line in /proc/?pid?/status */
fgets(buffer, READ_BUF_SIZE-1, file);
/* Buffer should contain a string like "Name: binary_name" */
sscanf(buffer, "%*s %s", name);
if (strcmp(name, pidName) == 0)
{
fgets(buffer, READ_BUF_SIZE-1, file);
fclose(file);
sscanf(buffer, "%*s %s", sts);
break;
}
}
closedir(dir);
}
==============================================================================
然后查看sts中是什么
R ->runable
S ->Sleep
......
Nety2004
2004-12-19
打赏
举报
回复
假如你要判断1.2.3.4的SMTP(25端口)服务是否开启,你只要创建一个socket,用connect()函数去连接该服务器的该端口,如果返回0,表示连接成功,则该服务器有开启该服务;如果返回-1,则表示没有开启.
blder
2004-12-19
打赏
举报
回复
关注
帮你顶
Linux企业级日常工作实战初级视频
学习宣言: 我曾经经历过学习Linux的苦恼,没有人
指点
,进步慢如蜗牛,也是非常荣幸得到很多人的帮助和指导,所以今天想帮助真心想学习的朋友,少走弯路,用技术成就自己的梦想。 讲课风格: Linux从基础到高级系列...
JS 万字总结 重量级干货!!!2.6万字JS干货分享,带你领略前端魅力!
前言 本篇文章属于知识总结型,归纳出许多比较零散的知识点,都是干货噢~ ...个人水平有限,还
请
各位大佬
指点
迷津。希望各位看了这篇文章能有自己的想法,在前端道路上还很漫长,与我一同探索吧! 个人
该不会还有人不懂用C语言写扫雷游戏吧
该不会有人还不懂用C语言实现扫雷游戏吧?如果有,那我教你!
继认证后弄清Spring Security实现授权
这里主要是对学习过程进行一个记录和总结,参考的仍然是三更草堂的笔记,但中间加上了自己的一些理解和看法以及一些遇到的问题总结,如果哪里有问题还
请
各位
指点
指点
。这里是基于前面一篇文章《清晰搞懂Spring...
(笔试题)应聘iphone开发工程师,iphone和Objective-C的笔试题? (http://www.cocoachina.com/bbs/simple/?t44281.html)...
iphone和Objective-C笔试题? (笔试题)应聘iphone开发工程师,iphone和Objective-C的笔试题?
请
各位iphone开发工程师,积极参与解答笔试题,帮助初学者通过面试难关。在此提前表示感谢!
请
各位iphone开发工程师不要...
Linux/Unix社区
23,126
社区成员
74,510
社区内容
发帖
与我相关
我的任务
Linux/Unix社区
Linux/Unix社区 应用程序开发区
复制链接
扫一扫
分享
社区描述
Linux/Unix社区 应用程序开发区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章