, int base);用于将字符串转换为长整型数字的函数 参数:str : 要转换的字符串endptr : 可选输出参数,指向第一个不能转换成数字字符的字符的指针base : 数字基数,介于 2 和 36 之间;当 base 参数为 0 时,wcstol() 函数会自动检测数字基数:如果输入字符串以 "0x" 或 "0X" 开头,则将基数设置为 16。 如果输入字符串以 "0" 开头,则将基数设置为 8。如果不是这些情况,则将基数设置为 10。 之间;当 base 参数为 0 时,wcstol() 函数会自动检测数字基数:如果输入字符串以 "0x" 或 "0X" 开头,则将基数设置为 16。 * s2, size_t n);用于比较两个宽字符数组的前 n 个宽字符 参数:s1 : 待比较的宽字符串1s2 : 待比较的宽字符串2n : 要比较的字节数返回值:如果两个数组相等,则返回零;如果
wchar_t *s2);用于比较两个宽字符字符串的大小写不敏感的差异参数:s1 : 待比较的宽字符串1s2 : 待比较的宽字符串2返回值:如果 s1 指向的字符串按字典顺序小于 s2 指向的字符串 (忽略大小写),则函数返回一个负整数;如果 s1 等于 s2,则函数返回 0;如果 s1 指向的字符串按字典顺序大于 s2 指向的字符串(忽略大小写),则函数返回一个正整数。 s1 指向的字符串按字典顺序小于 s2 指向的字符串(忽略大小写),则函数返回一个负整数;如果 s1 等于 s2,则函数返回 0;如果 s1 指向的字符串按字典顺序大于 s2 指向的字符串(忽略大小写 待比较的宽字符串1s2 : 待比较的宽字符串2n : 要比较的字符数目返回值:如果 s1 指向的字符串按字典顺序小于 s2 指向的字符串(忽略大小写),则函数返回一个负整数;如果 s1 等于 s2, 则函数返回 0;如果 s1 指向的字符串按字典顺序大于 s2 指向的字符串(忽略大小写),则函数返回一个正整数。
1.3 运行结果2. wcschr2.1 函数说明函数声明函数功能 wchar_t *wcschr(const wchar_t *str, wchar_t wc);用于在宽字符串中查找指定字符的位置 参数 2.3 运行结果3. wcscmp3.1 函数说明函数声明函数功能 int wcscmp(const wchar_t *str1, const wchar_t *str2);用于比较两个宽字符串的大小; 3.3 运行结果4. wcscoll4.1 函数说明函数声明函数功能 int wcscoll(const wchar_t *str1, const wchar_t *str2);用于比较两个宽字符串的大小 \n", str1, str2); return 0;}在上述的示例代码中,首先,我们调用 setlocale() 函数设置本地化环境为当前系统默认设置;然后,定义了两个宽字符串 str1 和 str2 :str1 : 待比较的宽字符串1str2 : 待比较的宽字符串2n : 要比较的字符数返回值:将字符串 str1 和字符串 str2 中的前 n 个字符进行比较如果两个字符串相同,返回值为 0;
/ 2, "Hello, world!") ; getch(); closegraph(); return 0;}在上述这个示例程序中,我们使用 setusercharsize() 函数将当前字符的大小设置为水平方向放大 2 倍 input, *output; char bufr[512]; input = fopen("file.in", "r+b"); output = fopen("file.out", "w" y = getmaxy() / 2; ht = textheight("W"); setactivepage(1); line(0, 0, getmaxx(), getmaxy()); OR_PUT:2,或模式,新绘制的图形将与旧图形进行或运算后显示。
void assert(int test);测试一个条件并可能使程序终止double atan(double x);反正切函数double atan2(double y, double x);计算Y/ : abort() 函数用于终止当前程序的执行。 如果成功分配内存,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 函数说明函数声明函数功能
内核中的一个函数,用于在内核空间分配一块连续的指定大小的内存,它与标准库函数 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)
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 位有效,用于表示当前打印机的状态。
函数说明函数声明函数功能 double difftime(time_t time2, time_t time1);计算两个时刻之间的时间差 2.2 演示示例#include <stdio.h>#include FILE *stream);int main(void){ FILE *fp; char msg[] = "This is a test"; fp = fopen("STU.FIL", "w" 6.3 运行结果7. dup27.1 函数说明函数声明函数功能 int dup2(int oldhandle, int newhandle);复制文件描述符;若成功为新的文件描述,若出错为-1。 );将返回的文件描述符赋值给 handle,并打印出来;使用 dup 函数备份当前的标准输出(STDOUT),将备份的文件描述符赋值给 oldstdout,并打印出来;使用 dup2 函数将标准输出重定向到 ;使用 dup2 函数将标准输出恢复到备份的文件描述符 oldstdout,即将后续的输出内容输出到屏幕上。
NaN 的情况,避免出现异常结果1.3 运行结果2. nanosleep2.1 函数说明函数声明函数功能 int nanosleep(const struct timespec *req, struct 在本例中,我们将等待时间设置为 2 秒加上 5 毫秒。接着,我们调用 nanosleep() 函数,并传递 req 变量的地址作为第一个参数。 double w = nearbyint(y); // 将 -1.8 四舍五入到 -2 printf("x: %lf, nearbyint(x): %lf\n", x, z); printf ("y: %lf, nearbyint(y): %lf\n", y, w); float xf = 2.5; printf("xf: %f, nearbyintf(xf): %f\n", xf 接着,我们使用 strcoll_l() 函数来在新的本地化环境变量下比较两个字符串 str1 和 str2。最后,我们输出比较结果,并使用 freelocale() 函数释放 loc 变量。
, int color);用于将一个像素点画在指定的位置上 int puts(const char *s);用于将一个字符串输出到标准输出流int putw(int w, FILE *stream); 1.3 运行结果2. pieslice2.1 函数说明函数声明函数功能 void pieslice(int x, int y, int stanle, int endangle, int radius) \n"); return -1; } ret = pthread_create(&thread2, NULL, thread_func, (void *)2); if ( 13.3 运行结果14. putw14.1 函数说明函数声明函数功能 int putw(int w, FILE *stream);用于将一个整数值以二进制形式写入到指定的文件中。 参数:w : 要写入的整数值stream : 指向要写入的文件的指针。返回值:如果成功,则返回写入的字节数(通常为 4 个字节);如果发生错误,则返回 EOF。
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!")
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);用于将文本文件的行末标志符从 src_file, const char *dst_file) { FILE *in = fopen(src_file, "r"); FILE *out = fopen(dst_file, "w" 通常情况下,偏移量应该为正整数,代表从文件开头开始的偏移量。如果 offset 参数小于零,则将从文件末尾开始向前计算偏移量。
总览函数声明函数功能 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 (); printf("Trying to access drive A:\n"); printf("fopen returned %p\n", fopen("A:temp.dat", "w" 接着调用 highvideo() 把文本显示切换为高亮度,利用 gotoxy(1, 2) 将光标定位到第 1 列第 2 行,再用 cprintf() 输出高亮度的 "High Intensity Text hsearch_r 函数与 hsearch 函数的不同之处在于,指向找到的项的指针以 *retval 形式返回,而不是作为函数结果。入参:item: 要搜索的哈希表条目。action: 功能操作。
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 ) 增大呈现衰减振荡,类似“衰减的正弦波”。 :x^2 y'' + x y' + (x^2 - 1^2)y = 0 2.1.2 级数展开J_1(x) = \sum_{m=0}^{\infty} \frac{(-1)^m}{m! \left( \frac{x}{2} \right)^{2m+1} 2.1.3 特性初值行为:J_1(0) = 0 ,初始近似线性增长 J_1(x) \approx \frac{x}{2} 。 \, \Gamma(n+m+1)} \left( \frac{x}{2} \right)^{2m+n} 其中 \Gamma 为伽马函数,整数阶时 \Gamma(n+m+1) = (n+m)! 。
)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
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() 函数等待它们结束
然后在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() 函数将文件指针重新定位到文件开头