C语言作为一种历史悠久的编程语言,其应用范围广泛,从嵌入式系统到操作系统开发,再到科学计算和游戏开发,随着技术的发展,C语言也在不断演进,各种库和API(应用程序编程接口)的出现使得C语言的功能更加强大和多样化,本文将详细介绍一些常用的C语言API及其应用场景。
1、stdio.h
功能: 提供标准输入输出功能。
常用函数:printf
,scanf
,fopen
,fclose
,fgets
,fputs
等。
示例:
#include <stdio.h> int main() { printf("Hello, World! "); return 0; }
2、stdlib.h
功能: 提供内存分配、程序退出和随机数生成等功能。
常用函数:malloc
,free
,exit
,rand
,srand
等。
示例:
#include <stdlib.h> int main() { int *ptr = (int*)malloc(sizeof(int)); *ptr = 10; printf("%d ", *ptr); free(ptr); return 0; }
3、string.h
功能: 提供字符串处理功能。
常用函数:strlen
,strcpy
,strcat
,strcmp
,strchr
等。
示例:
#include <string.h> #include <stdio.h> int main() { char str1[20] = "Hello"; char str2[20] = "World"; strcat(str1, str2); printf("%s ", str1); // 输出: HelloWorld return 0; }
1、math.h
功能: 提供各种数学运算函数。
常用函数:sin
,cos
,tan
,log
,exp
,sqrt
等。
示例:
#include <math.h> #include <stdio.h> int main() { double result = sin(M_PI / 2); printf("%f ", result); // 输出: 1.000000 return 0; }
2、tgmath.h
功能: 提供类型通用的数学函数。
常用函数:sin
,cos
,tan
,log
,exp
,sqrt
等(与math.h
类似,但支持类型通用)。
示例:
#include <tgmath.h> #include <stdio.h> int main() { float result = cosf(0.0f); printf("%f ", result); // 输出: 1.000000 return 0; }
1、time.h
功能: 提供时间和日期处理功能。
常用函数:time
,localtime
,gmtime
,difftime
,mktime
等。
示例:
#include <time.h> #include <stdio.h> int main() { time_t current_time = time(NULL); struct tm *local_time = localtime(¤t_time); printf("Current local time: %s", asctime(local_time)); return 0; }
2、sys/time.h
功能: 提供更精确的时间处理功能(微秒级)。
常用函数:gettimeofday
,settimeofday
等。
示例:
#include <sys/time.h> #include <stdio.h> int main() { struct timeval tv; gettimeofday(&tv, NULL); printf("Seconds: %ld, Microseconds: %ld ", tv.tv_sec, tv.tv_usec); return 0; }
1、pthread.h
功能: 提供POSIX线程(pthread)的创建和管理功能。
常用函数:pthread_create
,pthread_join
,pthread_mutex_lock
,pthread_mutex_unlock
等。
示例:
#include <pthread.h> #include <stdio.h> void* thread_function(void* arg) { printf("Hello from new thread! "); return NULL; } int main() { pthread_t thread_id; pthread_create(&thread_id, NULL, thread_function, NULL); pthread_join(thread_id, NULL); return 0; }
2、windows.h
功能: 在Windows平台上提供多线程支持。
常用函数:CreateThread
,WaitForSingleObject
,ReleaseMutex
等。
示例:
#include <windows.h> #include <stdio.h> DWORD WINAPI thread_function(LPVOID arg) { printf("Hello from new thread! "); return 0; } int main() { HANDLE thread_handle; thread_handle = CreateThread(NULL, 0, thread_function, NULL, 0, NULL); WaitForSingleObject(thread_handle, INFINITE); CloseHandle(thread_handle); return 0; }
1、sys/socket.h
功能: 提供套接字编程接口,用于网络通信。
常用函数:socket
,bind
,listen
,accept
,connect
,send
,recv
等。
示例:
#include <sys/socket.h> #include <netinet/in.h> #include <stdio.h> int main() { int server_fd = socket(AF_INET, SOCK_STREAM, 0); struct sockaddr_in address; address.sin_family = AF_INET; address.sin_addr.s_addr = INADDR_ANY; address.sin_port = htons(8080); bind(server_fd, (struct sockaddr *)&address, sizeof(address)); listen(server_fd, 3); int client_fd = accept(server_fd, NULL, NULL); send(client_fd, "Hello, Client!", 14, 0); close(client_fd); close(server_fd); return 0; }
2、netdb.h
功能: 提供网络数据库操作函数,如DNS解析。
常用函数:gethostbyname
,getservbyname
等。
示例:
#include <netdb.h> #include <stdio.h> int main() { struct hostent *host = gethostbyname("www.example.com"); printf("IP Address: %s ", inet_ntoa(*((struct in_addr*)host->h_addr))); return 0; }
1、fcntl.h
功能: 提供文件控制操作,如文件锁定和解锁。
常用函数:open
,close
,read
,write
,lseek
,fcntl
等。
示例:
#include <fcntl.h> #include <unistd.h> #include <stdio.h> int main() { int fd = open("example.txt", O_RDWR | O_CREAT, 0666); write(fd, "Hello, World!", 13); lseek(fd, 0, SEEK_SET); char buffer[14]; read(fd, buffer, 13); buffer[13] = '