操作系统实验及代码(全),操作系统实验代码

#include
<Windows.h>

    serverAddress.sin_family = AF_INET;

难点1:Windows进度的创设与销毁

履新时间:2017-10-26

剧情及须要:


通晓Windows进程的创办和销毁API的调用方法;编制程序代码,在先后中开创和销毁1个Word进程;

② 能够挂起和激活被成立进程的主线程;

③ 通过Windows进度管理器查看系统经过列表的转变。

尝试指引:

①制程的API

BOOL CreateProcess(

  LPCTSTR lpApplicationName,

  LPTSTR lpCommandLine,

  LPSECURITY_ATTRIBUTES lpProcessAttributes,

  LPSECURITY_ATTRIBUTES lpThreadAttributes,

  BOOL bInheritHandles,

  DWORD dwCreationFlags,

  LPVOID lpEnvironment,

  LPCTSTR lpCurrentDirectory,

  LPSTARTUPINFO lpStartupInfo,

  LPPROCESS_INFORMATION lpProcessInformation

);

例程:

 1 void main( VOID ){
 2     STARTUPINFO si;
 3     PROCESS_INFORMATION pi;
 4     ZeroMemory( &si, sizeof(si) );
 5     si.cb = sizeof(si);
 6     ZeroMemory( &pi, sizeof(pi) );
 7     // Start the child process. 
 8     if( !CreateProcess( NULL, // No module name (use command line). 
 9         "MyChildProcess", // Command line. 
10         NULL,             // Process handle not inheritable. 
11         NULL,             // Thread handle not inheritable. 
12         FALSE,            // Set handle inheritance to FALSE. 
13         0,                // No creation flags. 
14         NULL,             // Use parent's environment block. 
15         NULL,             // Use parent's starting directory. 
16         &si,              // Pointer to STARTUPINFO structure.
17         &pi )             // Pointer to PROCESS_INFORMATION structure.
18         ) {
19             ErrorExit( "CreateProcess failed." );
20     }
21     // Wait until child process exits.
22     WaitForSingleObject( pi.hProcess, INFINITE );
23     // Close process and thread handles. 
24     CloseHandle( pi.hProcess );
25     CloseHandle( pi.hThread );
26 }

销毁进度API

BOOL TerminateProcess(

  HANDLE hProcess,

  UINT uExitCode

);

③ 挂起经过的主线程API

DWORD SuspendThread(

  HANDLE hThread

);

④激活进度的主线程API

DWORD ResumeThread(

  HANDLE hThread

);

⑤经过查看器

1 #include<iostream> 2 #include<windows.h> 3 using
namespace std; 4 void main( VOID ) 5 { 6 STARTUPINFO si; 7
PROCESS_INFORMATION pi; 8 /** 9 * 那里填个人的word可执行文件的路径
10 * ps:”\”须求展开转义 11 **/ 12 TCHAR
szCommandLine[]=TEXT(“D:\\Microsoft
Office\\Office14\\WINWORD.EXE”); 13 ZeroMemory(&si, sizeof(si) ); 14
si.cb= sizeof(si); 15 ZeroMemory(&pi, sizeof(pi) ); 16
if(!CreateProcess( NULL, szCommandLine, NULL,NULL, FALSE,0,NULL,
NULL,&si,&pi ) ) 17 { 18 fprintf(stderr,”进度创设失利!”); 19 } 20 int
x; 21 while(1) 22 { 23 cout <<
“请输入要采取的操作:\n1:创立进程\n2:销毁进度\n3:挂起经过\n4:激活进度\n0:退出\n”;
24 cin >> x; 25 switch(x) 26 { 27 case 1: 28 if(CreateProcess(
NULL, szCommandLine, NULL,NULL, FALSE,0,NULL, NULL,&si,&pi ) ) 29
fprintf(stderr,”进度创建成功!”); 30 else 31 cout <<
“进程创设战败!”<<endl; 32 break; 33 case 2: 34
if(TerminateProcess(pi.hProcess,0)) 35
cout<<“销毁进程成功”<<endl; 36 else 37
cout<<“销毁战败!”<<endl; 38 break; 39 case 3: 40
if(SuspendThread(pi.hThread)) 41 cout<<“挂起进度成功”<<endl;
42 else 43 cout<<“挂起退步”<<endl; 44 break; 45 case 4: 46
if(ResumeThread(pi.hThread)) 47 cout<<“激活进度成功”<<endl;
48 else 49 cout<<“激活退步”<<endl; 50 break; 51 case 0: 52
exit(0); 53 default: 54 cout<<“输入有误不得法”<<endl; 55 }
56 } 57 }

 

频频更新中!!!

 

作者:耑新新,发布于  博客园

转载请评释出处,欢迎邮件交流:[email protected]

操作系统是总计机有关标准的一门极其首要的专业课,但实验课的时候很多人不明了代码应…

#define MB_YESNO 0x00000004L

       if(iSelect==IDOK)

        cout <<“本地主机的名字是:” << buf << endl;

操作系统实验及代码(全),操作系统实验代码

操作系统是电脑有关标准的一门极其首要的专业课,但实验课的时候很三个人不清楚代码应该怎么写,那里贴出博主使用过的一有个别,亲测可行。 

int WINAPI WinMain(

int  main()

 

windef.h:基本类型定义

     欢迎来到windows编制程序的社会风气,先给我们的windows打个招呼吧:

        cout << “h_length:” <<
pht->h_length << endl;

这么些按钮都以宏定义

}

    }

MessageBox(NULL, TEXT(“你点击了“鲜明”按钮”), TEXT, MB_OK);

       int iSelect=MessageBox(NULL,TEXT(“你好,windows世界,我来了!”),TEXT(“你好,世界”),MB_OKCANCEL);

 

HINSTANCE hPrevInstance,

              *cout<<“you select ok “<<endl*;

        cout << WSAGetLastError() <<
endl;

NULL,

       }

        
Name:用于指向主机名缓冲区的指针,namelen: 缓冲区的轻重。

这一个图标也都以宏定义:

       {

1.先是网络编程使用C++,要引入一些库

图片 1

       *system*(“pause”);

3.大规模的有的函数在WinSocket编制程序中利用的牵线

uType:对话框的按钮样式和图标。

{

        exit(-1);

#define IDOK 1

       {

        exit(-1);

#define IDABORT 3

       }else

 

WinMain() 函数的原型为:

#include
<iostream>

         开启Windows Sock
Asynchronous,对应该程序甘休的时候,就相应关闭,WSACleanup()用于接触于Socket库的绑定并且释放掉Socket库所占用的系统能源。

}

   所谓windows编制程序便是指通过调用Windows
API来和操作系统交互的编制程序情势。API便是与操作系统交互的种种作用函数,MessageBox就是2个API,调用它就可以弹出叁个对话框。

 

lpText:消息框的剧情。LPCTST大切诺基 是自定义数据类型,等价于 const char *。

using namespace  std;

    if(WSAStartup(MAKEWORD(2,1),&wsa) != 0){

#define MB_ICONHAND 0x00000010L

       return  0;

 

#define IDCANCEL 2

              *cout<<“you select cancel”<<endl*;

    WSACleanup();// 实现清理工科作

HINSTANCE hPrevInstance, //
前1个窗口句柄,Win32下为NULL(Win16留下的废料,目前已弃用)

        cout <<“本地主机的名字是:” << buf << endl;

#define MB_ICONQUESTION 0x00000020L

        cout << “h_aliases:” <<
pht->h_aliases << endl;

编写Windows程序,首先要含有 windows.h 头文件。windows.h
还包括了其它部分Windows头文件,例如:

            cout << “IP:”
<<inet_ntoa(addr) << endl;

int nCmdShow // 窗口突显方式

 

MB_OKCANCEL | MB_ICONINFORMATION

    }else{

hWnd:该音讯框的父窗口句柄,如若此参数为NULL,则该新闻框没有兼具父窗口。大家不用急于掌握那么些参数,后续会详细讲解。

int main(){

服务器开发工程师、人工智能、云计算工程师、新闻安全、大数据
、数据平台、嵌入式工程师、流媒体服务器、数据控解、图像处理、音频录制开发工程师、游戏服务器、分布式系统、游戏支持等

                  
wVersionRequest: 贰个双字节数值, 使用MAKEWO奥迪Q7D(2,2)生成;

这么些头文件定义了Windows的兼具数据类型、函数原型、数据结构和标志常量,也便是说,全部的Windows
API都在那几个头文件中声称。

        cout << “绑定套接字端口战败” << endl;

假诺期望同时定义按钮和图标的样式,可以采用或运算|,例如:

    }

您也得以尝试用数字来表示按钮,例如:

    if(pht==NULL){

C和C++的区别:

hostent* pht =
gethostbyname(“www.google.com”);

与地方的对话框相比较,多出了一个图标,同时还能听到提醒音。是或不是多了二个提示标志在文字的日前啊。

        cout << “h_addrtype:” << 
pht->h_addrtype << endl;

#define MB_YESNOCANCEL 0x00000003L

#pragma comment(lib,”ws2_32.lib”)

}

#include <iostream>

#define MB_ABORTRETRYIGNORE 0x00000002L

        cout << “yang” << endl;

TEXT,

        exit(-1);

#define MB_OKCANCEL 0x00000001L

        cout << “h_length:” <<
pht->h_length << endl;

#define IDRETRY 4

    int listen_port = 8999;

C++,重要考虑的是何许组织2个对象模型,让那一个模型能够契合与之对应的难题域,那样就能够通过取得对象的情况新闻获得输出或落到实处进度序控制制。
所以C与C++的最大差异在于它们的用于化解难题的思念方法差异。之所以说C++比C更先进,是因为“
设计那一个概念已经被融入到C++之中 ”。

        sockaddr_in clientAddress;

int WINAPI MessageBox( HWND hWnd, LPCTSTR lpText, LPCTSTR lpCaption,
UINT uType );

        }

C与C++的最大分别:在于它们的用来缓解难点的思辨方式不平等。之所以说C++比C更上进,是因为“
设计这么些概念已经被融入到C++之中
”,而就语言本人而言,在C中越来越多的是算法的概念。那么是否C就不重大了,错!算法是程序设计的基础,好的安排倘若没有好的算法,一样特别。而且,“C加上好的规划”也能写出十分好的事物。

#include <process.h>

除却按钮,uType 还支持图标(图标对用户有提醒成效):

    if( gethostname(buf,sizeof(buf)) ==
SOCKET_ERROR  ){

);

发表评论

电子邮件地址不会被公开。 必填项已用*标注