静态库
什么是静态库
C静态库(Static Library)是C语言编程中常用的一种库文件形式。与动态库(Dynamic Library)相比,静态库在程序编译时会被完全嵌入到最终的可执行文件中,因此生成的可执行文件不依赖于外部的库文件。这意味着,无论目标系统上是否安装了相应的库,只要编译时包含了静态库,程序就可以正常运行。C静态库(Static Library)是C语言编程中常用的一种库文件形式。与动态库(Dynamic Library)相比,静态库在程序编译时会被完全嵌入到最终的可执行文件中,因此生成的可执行文件不依赖于外部的库文件。这意味着,无论目标系统上是否安装了相应的库,只要编译时包含了静态库,程序就可以正常运行。
CLion生成静态库
使用CLion生成静态库文件。
创建C语言库项目
修改库文件.h名称
编写库中的头文件
#ifndef FFYC_FFYC_H
#define FFYC_FFYC_H
#include <stdio.h>
#include <stdlib.h>
#include<sys/socket.h>
#include <arpa/inet.h>
#include <string.h>
#include <unistd.h>
#include <errno.h>
/**
* 启动服务器
* @return
*/
int start_server(int port);
/**
* 连接服务器
* @param server_socket
* @return 返回连接状态
*/
int conn_server(int server_socket);
/**
* 获取前端返回的数据
* @param conn_socket 连接状态
* @param req_buffer 数组存储请求的字符串
*/
void receive_data(int conn_socket, char* req_buffer,int req_buffer_len);
/**
* 打印字符串数组信息
* @param array 字符数组
* @param len 字符数组长度
*/
void print_array(char *array, int len);
/**
* 获取请求数据
* @param array
* @param len
* @return
*/
char* get_req_data(char *array, int len);
/**
* 将十六进制转换为十进制
* @param c 要转换的字符
* @return 返回十进制数
*/
int hex2dec(char c);
/**
* 将输入的字符串中的中文翻译为中文正确格式
* @param url
*/
void url_decode(char url[]);
/**
* 发送数据到web前端
* @param conn_socket 连接的socket
* @param data 传输的数据
*/
void send_data(int conn_socket,char* data);
#endif //FFYC_FFYC_H
编写.c文件
#include "ffyc.h"
char resp_header[] = "HTTP/1.0 200 OK\r\n"<