C语言getlasterror
时间: 2023-06-23 19:59:44 浏览: 268
`GetLastError()` 函数是 Windows 系统 API 中的一个函数,用于检索最近一次发生的错误代码。在 C 语言中,可以通过 `#include <windows.h>` 来包含该函数的头文件,并使用该函数来获取错误代码。例如:
```c
#include <windows.h>
#include <stdio.h>
int main()
{
DWORD error = GetLastError();
printf("Error code: %lu\n", error);
return 0;
}
```
注意,该函数只有在发生错误时才会返回有意义的值。因此,在调用可能会发生错误的系统 API 函数后,应该立即调用 `GetLastError()` 函数来获取错误代码。
相关问题
windows c语言 TCP Socket
要在Windows平台上使用C语言编写TCP Socket程序,可以遵循以下步骤:
1. 引入Windows Socket库文件
在程序中引入Windows Socket库文件,可以使用以下代码:
```
#include <winsock2.h>
#pragma comment(lib, "ws2_32.lib")
```
2. 初始化Winsock库
在程序开始运行之前,需要调用WSAStartup()函数来初始化Winsock库,可以使用以下代码:
```
WSADATA wsaData;
if (WSAStartup(MAKEWORD(2,2), &wsaData) != 0) {
printf("WSAStartup failed: %d\n", GetLastError());
return 1;
}
```
3. 创建Socket
使用socket()函数创建一个套接字,可以使用以下代码:
```
SOCKET sock = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
if (sock == INVALID_SOCKET) {
printf("socket failed: %d\n", WSAGetLastError());
WSACleanup();
return 1;
}
```
其中,AF_INET表示使用IPv4地址族,SOCK_STREAM表示使用TCP协议,IPPROTO_TCP表示使用TCP协议。
4. 连接服务器
使用connect()函数连接服务器,可以使用以下代码:
```
struct sockaddr_in serverAddr;
serverAddr.sin_family = AF_INET;
serverAddr.sin_port = htons(port);
serverAddr.sin_addr.s_addr = inet_addr(ip);
if (connect(sock, (struct sockaddr*)&serverAddr, sizeof(serverAddr)) == SOCKET_ERROR) {
printf("connect failed: %d\n", WSAGetLastError());
closesocket(sock);
WSACleanup();
return 1;
}
```
其中,port和ip分别表示服务器的端口号和IP地址。
5. 发送数据
使用send()函数发送数据,可以使用以下代码:
```
const char* sendData = "Hello, server!";
int ret = send(sock, sendData, strlen(sendData), 0);
if (ret == SOCKET_ERROR) {
printf("send failed: %d\n", WSAGetLastError());
closesocket(sock);
WSACleanup();
return 1;
}
```
6. 接收数据
使用recv()函数接收数据,可以使用以下代码:
```
char recvData[1024];
int ret = recv(sock, recvData, sizeof(recvData), 0);
if (ret == SOCKET_ERROR) {
printf("recv failed: %d\n", WSAGetLastError());
closesocket(sock);
WSACleanup();
return 1;
}
recvData[ret] = '\0';
printf("Received data: %s\n", recvData);
```
7. 关闭Socket
在程序结束时,使用closesocket()函数关闭Socket,可以使用以下代码:
```
closesocket(sock);
WSACleanup();
```
这些是使用C语言在Windows平台上编写TCP Socket程序的基本步骤,可以根据需要进行修改和扩展。
c语言更改电脑名称
在Windows系统中,可以使用以下的C语言代码更改电脑名称:
```c
#include <stdio.h>
#include <stdlib.h>
#include <windows.h>
int main()
{
char new_name[MAX_COMPUTERNAME_LENGTH + 1];
DWORD size = sizeof(new_name) / sizeof(*new_name);
GetComputerName(new_name, &size);
printf("Current computer name: %s\n", new_name);
printf("Enter new computer name: ");
scanf("%s", new_name);
if (SetComputerName(new_name))
{
printf("Computer name changed successfully.\n");
}
else
{
printf("Error changing computer name: %d\n", GetLastError());
}
return 0;
}
```
这段代码会先获取当前电脑的名称,然后提示用户输入新的电脑名称。最后,调用`SetComputerName`函数来设置新的电脑名称。如果设置成功,会输出一条成功的消息;否则会输出错误码。注意,更改电脑名称需要管理员权限。
阅读全文