char *dst_file);用于将文本文件的行末标志符从 Unix 风格的 \n 转换为 Windows/DOS 风格的 \r\n int dos2unix(const char *src_file str : 用于存储转换后的字符串base : 要使用的进制数,可以为 2、8、10 或 16函数 ultoa() 将参数 value 转换为以 base 进制表示的形式,并将结果存储在缓冲区 str 3.3 运行结果4. unix2dos4.1 函数说明函数声明函数功能 int unix2dos(const char *src_file, const char *dst_file);用于将文本文件的行末标志符从 Unix 风格的 \n 转换为 Windows/DOS 风格的 \r\n int dos2unix(const char *src_file, const char *dst_file);用于将将文本文件的行末标志符从 通常情况下,偏移量应该为正整数,代表从文件开头开始的偏移量。如果 offset 参数小于零,则将从文件末尾开始向前计算偏移量。
thickness : 线条宽度,取值范围为 1 到 10,表示线条的像素宽度线条样式值描述SOLID_LINE0实线DOTTED_LINE1 虚线CENTER_LINE2点线DASHED_LINE3长短线 / 2, "Hello, world!") 2 倍、垂直方向放大 3 倍 setusercharsize(2, 1, 3, 1); // 输出一行文本 outtextxy(100, 100, "Hello, world!") ; getch(); closegraph(); return 0;}在上述这个示例程序中,我们使用 setusercharsize() 函数将当前字符的大小设置为水平方向放大 2 倍 OR_PUT:2,或模式,新绘制的图形将与旧图形进行或运算后显示。
, int base);用于将字符串转换为长整型数字的函数 参数:str : 要转换的字符串endptr : 可选输出参数,指向第一个不能转换成数字字符的字符的指针base : 数字基数,介于 2 和 36 之间;当 base 参数为 0 时,wcstol() 函数会自动检测数字基数:如果输入字符串以 "0x" 或 "0X" 开头,则将基数设置为 16。 之间;当 base 参数为 0 时,wcstol() 函数会自动检测数字基数:如果输入字符串以 "0x" 或 "0X" 开头,则将基数设置为 16。 ; const wchar_t ch = L'u'; wchar_t* pch; // 在宽字符数组中查找给定的宽字符 // 使用 wcslen() 函数来获取 str 的长度, * s2, size_t n);用于比较两个宽字符数组的前 n 个宽字符 参数:s1 : 待比较的宽字符串1s2 : 待比较的宽字符串2n : 要比较的字节数返回值:如果两个数组相等,则返回零;如果
: abort() 函数用于终止当前程序的执行。 at segment: %x\n", segp); else printf("Failed: maximum number of paragraphs available is %u\ 如果成功分配内存,allocmem()函数将返回 -1,并打印出已分配内存的段地址;否则,它将返回最大可用段数,并打印出失败的消息。 double atan2(double y, double x);计算Y/X的反正切值13.2 演示示例#include <stdio.h>#include <math.h>int main(void (exit_fn1); /* post exit function #2 */ atexit(exit_fn2); return 0;}14.3 运行结果15. atof15.1 函数说明函数声明函数功能
NaN 的情况,避免出现异常结果1.3 运行结果2. nanosleep2.1 函数说明函数声明函数功能 int nanosleep(const struct timespec *req, struct 在本例中,我们将等待时间设置为 2 秒加上 5 毫秒。接着,我们调用 nanosleep() 函数,并传递 req 变量的地址作为第一个参数。 ">" : "==")), str2); // 释放本地化环境变量 freelocale(loc); return 0;}在上述程序中,我们首先使用 newlocale() 函数创建一个新的本地化环境变量 接着,我们使用 strcoll_l() 函数来在新的本地化环境变量下比较两个字符串 str1 和 str2。最后,我们输出比较结果,并使用 freelocale() 函数释放 loc 变量。 ("num1: %08X\n", num1); printf("num2: %04X\n", num2); return 0;}注意: 在实际编程中应该特别注意不同平台之间的字节序差异,以避免出现不必要的错误
内核中的一个函数,用于在内核空间分配一块连续的指定大小的内存,它与标准库函数 calloc() 的功能类似。 , ch); return 0;}1.3 运行结果2. kcalloc2.1 函数说明函数声明函数功能 void *kcalloc(size_t n, size_t size, gfp_t flags );它是 Linux 内核中的一个函数,用于在内核空间分配一块连续的指定大小的内存,它与标准库函数 calloc() 的功能类似。 参数:fn : 指向线程处理函数的指针arg : 传递给线程处理函数的参数flags : 用于控制进程创建方式的标志。 注意: 在使用 kstat_irqs_cpu() 函数时,必须确保传递给该函数的参数是正确的,并且具有足够的权限来访问相关的数据结构。
tell(int fd);用于返回文件指针当前位置相对于文件开头的偏移量long int telldir(DIR *dirp);获取目录流的当前位置int textheight(char *string M_PI / 180.0l); printf("The tangent of %Lf degrees is %Lf\n", xL, tan_valueL); return 0;}1.3 运行结果2. tanhl_value); return 0;}2.3 运行结果3. tell3.1 函数说明函数声明函数功能 off_t tell(int fd);用于返回文件指针当前位置相对于文件开头的偏移量参数 x = 5.0; float y = 7.2f; long double z = 2.5L; double result1 = tgamma(x); float result2 tgammal(z); printf("tgamma(%lf) = %lf\n", x, result1); printf("tgammaf(%f) = %f\n", y, result2)
函数说明函数声明函数功能 double difftime(time_t time2, time_t time1);计算两个时刻之间的时间差 2.2 演示示例#include <stdio.h>#include 6.3 运行结果7. dup27.1 函数说明函数声明函数功能 int dup2(int oldhandle, int newhandle);复制文件描述符;若成功为新的文件描述,若出错为-1。 dup2 可以用 newhandle 参数指定新的描述符数值。如果 newhandle 已经打开,则先关闭。 );将返回的文件描述符赋值给 handle,并打印出来;使用 dup 函数备份当前的标准输出(STDOUT),将备份的文件描述符赋值给 oldstdout,并打印出来;使用 dup2 函数将标准输出重定向到 ;使用 dup2 函数将标准输出恢复到备份的文件描述符 oldstdout,即将后续的输出内容输出到屏幕上。
2: 返回Shift、Ctrl、Alt、ScrollLock、NumLock、CapsLock、Insert等控制键的状态。各键状态存放在返回值的低8位字节中。 此时,byte 参数的值表示要输出的字符的 ASCII 码或汉字的内码。 1 :初始化打印机。这个命令通常用于设置打印机的初始状态或重置打印机。 2 :读取打印机的状态。 当 cmd 为 1 或 2 时,byte 参数的值可能不被使用或具有特定的含义(取决于 BIOS 的实现和打印机的类型),但在大多数情况下,可以将其设置为 0 或一个不影响操作的任意值。 0 :LPT1(第一个并行打印端口) 1 :LPT2(第二个并行打印端口) 2 :LPT3(第三个并行打印端口) 以此类推,具体取决于计算机的配置和 BIOS 的支持。 当 cmd 为 2 时,函数返回一个整数值,该值的低 8 位有效,用于表示当前打印机的状态。
1.3 运行结果2. pieslice2.1 函数说明函数声明函数功能 void pieslice(int x, int y, int stanle, int endangle, int radius) : 指向线程函数的指针,用于指定线程的入口点arg : 传递给线程函数的参数,可以为任意类型的指针。 \n"); return -1; } ret = pthread_create(&thread2, NULL, thread_func, (void *)2); if ( = 0) { printf("Failed to create thread 2! ARROW_SIZE, -1*ARROW_SIZE); linerel(0, 2*ARROW_SIZE); linerel(2*ARROW_SIZE, -1*ARROW_SIZE);}上述程序使用了
ldexp,ldexpf,ldexpl2.1 函数说明函数声明函数功能 double ldexp(double x, int exp);计算 x 乘以 2 的指定次幂(double)float ldexpf 4.3 运行结果5. line5.1 函数说明函数声明函数功能 void line( int x1, int y1, int x2, int y2);在指定两点间画一直线参数:(x1, y1) : 第一个点的坐标 :handle : 文件描述符offset : 偏移量whence : 偏移量的参考位置SEEK_SET: 从文件开头开始计算偏移量(即绝对位置)SEEK_CUR: 从当前位置开始计算偏移量(即相对位置 )SEEK_END: 从文件结尾开始计算偏移量(即反向偏移)返回值:如果成功,则返回新的文件指针位置(即距离文件开头的字节数);如果发生错误,则返回 -1。 然后,调用 lseek() 函数将文件指针移动到距离文件开头 5 个字节处。接着,调用 read() 函数从该位置开始读取 5 个字节的数据,并输出读取结果。
ARROW_SIZE, -1*ARROW_SIZE); linerel(0, 2*ARROW_SIZE); linerel(2*ARROW_SIZE, -1*ARROW_SIZE); } 1.3 运行结果 2. initgraph 2.1 函数说明 函数声明 函数功能 void initgraph( int *graphdriver, int *graphmode, char *pathtodriver 函数声明 函数功能 int inport(int protid); 从硬件端口中输入,即从指定的 I/O 端口读取一个 16 位(2 字节)的数据 参数: portid :要读取数据的 I/O 端口号 midy = getmaxy() / 2; checkerrors(); // 安装用户定义的字体文件 userfont = installuserfont("USER.CHR : 转换后储存的字符数组 radix : 转换进制数,如2,8,10,16 进制等,大小应在2-36之间 21.2 演示示例 #include <stdlib.h> #include <stdio.h
obstack_init(&my_obstack); dst = (char *)obstack_alloc(&my_obstack, strlen(str1) + strlen(str2) + 1); strcpy(dst, str1); strcat(dst, str2); printf("%s\n", (char *)my_obstack.chunk); dst = (char *)obstack_blank(&my_obstack, sizeof(int)*2); int a = 100; int b = 200; memcpy(dst, 2. offsetof2.1 宏说明宏定义宏描述 #define offsetof(type, member) ((size_t)(&((type *)0)->member))它是一个宏,用于获取结构体中某个成员的偏移量 y = getmaxy() / 2; outtextxy(x, y, "Hello, world!")
u64 jiffies_64;它是 Linux 内核中的一个全局变量,类似于 jiffies,但是支持更大的取值范围。其中 u64 是 64 位无符号整型。 u64 jiffies64_to_msecs(const u64 jiffies);它是 Linux 内核头文件 linux/jiffies.h 中的一个函数,用于将 64 位 jiffies 值(内核节拍数 1. j0,j0f1.1 第一类 0 阶贝塞尔函数 J_0(x) 1.1.1 定义满足贝塞尔方程:x^2 y'' + x y' + (x^2 - 0^2)y = 0 在原点 ( x=0 ) 处有限的解。 ^2} \left( \frac{x}{2} \right)^{2m} 1.1.3 特性初值行为:J_0(0) = 1 ,为最大值。振荡衰减:随 ( x ) 增大呈现衰减振荡,类似“衰减的正弦波”。 6.3 运行结果7. jhash7.1 函数说明函数声明函数功能 u32 jhash(const void *key, u32 length, u32 initval);它是 Linux 内核头文件 linux
总览函数声明函数功能 double hypot(double x, double y);计算直角三角形的斜边长(double) float hypotf (float x, float y);计算直角三角形的斜边长 1#define ABORT 2int buf[500];//定义捕获磁盘问题的错误消息static char *err_msg[] = { "write protect", "unknown 接着调用 highvideo() 把文本显示切换为高亮度,利用 gotoxy(1, 2) 将光标定位到第 1 列第 2 行,再用 cprintf() 输出高亮度的 "High Intensity Text hsearch_r 函数与 hsearch 函数的不同之处在于,指向找到的项的指针以 *retval 形式返回,而不是作为函数结果。入参:item: 要搜索的哈希表条目。action: 功能操作。 retval: 指向找到的项的指针。htab : 哈希表的结构体数据。hsearch 函数返回值:如果操作成功,则返回指向哈希表的指针。
qsort() 函数中传入一个比较函数 compare(),用于比较两个元素的值。最后我们再次输出排序后的结果 ”After sorting: 1 2 3 4 5 6 7 8 9“。 1.3 运行结果2. quick_exit2.1 函数说明函数声明函数功能 void quick_exit(int status);它是 C11 标准中新增的函数,用于快速退出程序并执行一些清理操作。 void qurt_signal2_init(qurt_signal2_t *signal);用于初始化一个带有两个信号量的信号量对象。其中参数 signal 是指向要初始化的信号量对象的指针。 void qurt_signal2_destroy(qurt_signal2_t *signal);用于销毁带有两个信号量的信号量对象,并释放其占用的内存空间。 0;}在上述的示例中,我们使用 qurt_thread_create() 函数创建了两个线程,分别执行 task1() 和 task2() 函数,并使用 qurt_thread_join() 函数等待它们结束
)double exp2(double x);计算 x 的基数为2的指数(double)float exp2f(float x);计算 x 的基数为2的指数(float) long double exp2l (long double x);计算 x 的基数为2的指数(long double)double expm1 (double x);计算 e 的 x 次方 减 1,即 (e^x) - 1 (double decpt :指出给出小数点位置的整数值, 它是从该字符串的开头位置计算的。0 或负数指出小数点在第一个数字的左边。sign :指出一个指出转换的数的符号的整数。 exp2f,exp2l14.1 函数说明函数声明函数功能 double exp2(double x);计算 x 的基数为2的指数(double)float exp2f(float x);计算 x 的基数为 2的指数(float) long double exp2l(long double x);计算 x 的基数为2的指数(long double)14.2 演示示例#include <stdio.h>#include
然后在print_args() 函数内部,我们首先定义了两个 va_list 类型的变量 args1 和 args2,并使用 va_start() 函数初始化 args1 变量。 接着,我们使用 va_copy() 函数将 args1 复制到 args2 中,并使用 for 循环和 两个 va_arg() 函数来分别访问这两个可变参数列表,并依次输出每个参数的值。 1.3 运行结果2. va_arg2.1 函数说明函数声明函数功能 type va_arg(va_list ap, type);用于从可变参数列表中获取下一个参数,并将其转换为指定的类型 参数:ap : 它里面使用 vfprintf() 函数将格式化输出写入到一个文件流中;再然后,调用 rewind() 函数将文件指针重新定位到文件开头;再接着使用 fscanf() 函数从文件中读取数据,并使用 printf 如果创建文件失败,则打印错误信息并退出程序;接着,我们使用 fprintf() 函数将三个数据(一个整型数字、一个浮点数和一个字符串)写入该文件中;再然后,调用 rewind() 函数将文件指针重新定位到文件开头
void restorecrtmode(void);将图形模式恢复到文本模式void rewind(FILE *stream);将文件指针 stream 指向的文件位置重置为文件开头,同时清除任何错误或文件结束标志 1.3 运行结果2. rand2.1 函数说明函数声明函数功能 int rand(void);用于生成伪随机数 返回值: 每次调用它时会返回一个介于 0 和 RAND_MAX 之间的伪随机整数。 void rewind(FILE *stream);将文件指针 stream 指向的文件位置重置为文件开头,同时清除任何错误或文件结束标志。 ,我们首先打开一个名为 tempnew.txt 的文件;然后使用 fgets() 函数从文件中读取文本行,并输出内容;接着使用 rewind() 函数将文件指针重置到文件开头,并再次读取文件内容并输出; ,我们首先创建一个名为 test 的目录;然后在其中创建两个文件 file1.txt 和 file2.txt;接着使用 rmdir() 函数尝试删除该目录,但会失败,因为该目录不是空的。
总览函数声明函数功能 double cbrt (double x)计算 x 的立方根(double)float cbrtf (float x)计算 x 的立方根(float)long double cbrtl mode);创建一个新文件或重写一个已存在的文件 char *ctime(const time_t *time);把日期和时间转换为字符串1. cbrt,cbrtf,cbrtl1.1 函数说明函数声明函数功能 ceil,ceilf,ceill2.1 函数说明函数声明函数功能 double ceil (double x)计算大于或等于x的最小整数(double)float ceilf (float x)计算大于或等于 这个句柄通常是通过调用 open 或 creat 函数获得的。size : 新的文件大小,以字节为单位。如果新的大小比当前文件大小大,则文件会被扩展,新增的部分会用零填充。 这个文件描述符通常是通过调用 open、creat 或其他文件操作函数获得的。