如何用C语言来编写一个管理系统服务的程序?

Python014

如何用C语言来编写一个管理系统服务的程序?,第1张

C语言编程

的规则

C语言

源程序

的编程语法归纳如下:

1,强制性规则

1,一个C语言源程序必须有且只有一个

MAIN函数

.

2,函数名后必须紧跟

圆括号

对,函数体放在右圆括号")"后的花括号对"{}"中.

3,每个程序体(包括函数的函数体,含有多条语句的

选择结构

循环结构

中的语句序列)必须用一对花括号括起来.

4,文件包含

预处理命令

,#INCLUDE<*.H应置于源程序的开始位置.

5,语句未尾必须有分号,而预处理命令和函数首部的未尾及右花括号之后不要分号.

6,同一字母大,小写意义不同,关键字和标准

库函数

名必须用小写.

7,变量必须先定义,后使用

8,除已有明显间隔符外,

标识符

,关键字之间必须有至少一个空格9,注解必须包含在"/*

*/符号之间

在Windows下,可以使用一系列API来完成该功能。

首先,调用OpenSCManager来获得服务管理器句柄

然后,通过服务器管理器句柄,调用OpenService来打开指定服务名称的服务句柄。

通过服务句柄,调用ControlService来进行你想要的控制,比如暂停,停止,重启等操作。

最后,记得调用CloseServiceHandle来关闭上述句柄,以释放内核资源。

如下是我从以前的的一段代码中COPY过来的一点示例,该函数是准备删除一个服务,在删除服务之前,停止该服务。

BOOL Uninstall()

{

if ( !IsInstalled() )

return TRUE

SC_HANDLE hSCM = OpenSCManager( NULL, NULL, SC_MANAGER_ALL_ACCESS )

if ( hSCM == NULL )

{

//MessageBox( NULL, _T( "打开服务管理器失败!" ), szServiceName, MB_OK )

return FALSE

}

SC_HANDLE hService = OpenService( hSCM, szServiceName, SERVICE_STOP | DELETE )

if ( hService == NULL )

{

CloseServiceHandle( hSCM )

MessageBox( NULL, _T( "服务不存在!" ), szServiceName, MB_OK )

return FALSE

}

SERVICE_STATUS status

ControlService( hService, SERVICE_CONTROL_STOP, &status )

BOOL bDelete = DeleteService( hService )

CloseServiceHandle( hService )

CloseServiceHandle( hSCM )

if ( bDelete )

{

MessageBox( NULL, _T( "删除服务成功!" ), szServiceName, MB_OK )

return TRUE

}

MessageBox( NULL, _T( "删除服务失败!" ), szServiceName, MB_OK )

//LogEvent(_T("Service could not be deleted"))

return FALSE

}

1、操作系统

C语言最著名的应用领域就是操作系统了,目前所有的操作系统内核都是C语言写的,最著名的就是Unix和Linux了。

2、单片机

由于C语言在位操作上的优越性,在单片机领域,C语言也一直独领风骚,虽然现在出现了一些用其他编程语言操作单片机的方法,但也都是用C语言封装过的,可以说核心还是C语言。

3、驱动程序

无论是操作系统或者单片机,对硬件的驱动除了汇编(比较繁琐),都是用C语言来编写。

4、编译器或解释器

由于C语言效率高的特点,很多编译器也选择的使用C语言来开发。

5、系统服务

由于操作系统都提供了C语言的API,并且C语言的执行效率比较高,所以用C语言来写系统服务是最适合不过的。

6、应用软件

由于C语言没有成熟的开发框架,所以不适合开发大型应用程序。但也有一些对效率要求比较高的程序使用C语言开发,如Git。