void restorecrtmode(void);将图形模式恢复到文本模式void rewind(FILE *stream);将文件指针 stream 指向的文件位置重置为文件开头,同时清除任何错误或文件结束标志 5. rectangle5.1 函数说明函数声明函数功能 void rectangle( int left, int top, int right, int bottom);画一个矩形参数:left, void rewind(FILE *stream);将文件指针 stream 指向的文件位置重置为文件开头,同时清除任何错误或文件结束标志。 10.2 演示示例#include <stdio.h>int main() { FILE *fp = fopen("tempnew.txt", "r"); if (fp == NULL) { ,我们首先打开一个名为 tempnew.txt 的文件;然后使用 fgets() 函数从文件中读取文本行,并输出内容;接着使用 rewind() 函数将文件指针重置到文件开头,并再次读取文件内容并输出;
: abort() 函数用于终止当前程序的执行。 4. abswrite4.1 函数说明函数声明函数功能 int abswrite(int drive, int nsects, int sectno, void *buffer);将指定内容写入磁盘上的指定扇区 5. access5.1 函数说明函数声明函数功能 int access(const char *filename, int amode);确定文件的访问权限 5.2 演示示例#include <stdio.h ,首先调用了 allocmem() 函数来分配内存,其中传递了两个参数:size 表示请求的内存大小(以段为单位),这里设置为 64 段;&segp 表示返回的内存段地址将存储在此变量中。 如果成功分配内存,allocmem()函数将返回 -1,并打印出已分配内存的段地址;否则,它将返回最大可用段数,并打印出失败的消息。
insline(); getch(); return 0; } 5. installuserdriver 5.1 函数说明 函数声明 函数功能 int installuserdriver struct REGPACK { unsigned r_ax; unsigned r_bx; unsigned r_cx; unsigned r_dx; unsigned r_bp; unsigned r_si; unsigned r_di; unsigned r_ds; unsigned r_es; unsigned r_flags 例如: r_ax 对应 AX 寄存器。 r_bx 对应 BX 寄存器。 以此类推,r_cx、r_dx 等分别对应 CX、DX 等寄存器。 17.2 演示示例 #include <stdio.h> #include <ctype.h> int main() { char ch = '5'; if (isdigit(ch)
与 open() 函数相比,openat() 函数更加灵活,并支持更多的选项。 最后,我们使用 printf() 函数将连接后的字符串、添加的整数和添加的双精度浮点数输出到终端,并使用 obstack_free() 函数释放通过对象堆栈分配的所有内存。 5. opendir5.1 函数说明函数声明函数功能 DIR *opendir(const char *name);它是 POSIX 标准定义的一个函数,用于打开目录并返回一个指向 DIR 结构体类型的指针 7. on_exit7.1 函数说明函数声明函数功能 int on_exit(void (*function)(int, void *), void *arg);它是 POSIX 标准定义的一个函数,用于在进程退出时调用注册的回调函数 这个函数可以用于在程序异常退出或者正常退出时执行一些清理工作、记录日志等操作参数:function : 表示要注册的回调函数arg : 表示传递给回调函数的参数返回值:如果该函数执行成功,则返回值为 0
内核中的一个函数,用于在内核空间分配一块连续的指定大小的内存,它与标准库函数 calloc() 的功能类似。 );它是 Linux 内核中的一个函数,用于在内核空间分配一块连续的指定大小的内存,它与标准库函数 calloc() 的功能类似。 5. kfree5.1 函数说明函数声明函数功能 void kfree(void *ptr);它是 Linux 内核中的一个函数,用于释放使用 kmalloc() 或者 kzalloc() 函数分配的内存空间 (0); } else if (pid > 0) { // 父进程 printf("Parent process started\n"); sleep(5) \n"); /* duplicate string */ dst = kstrndup(src, 5, GFP_KERNEL); if (!
tell(int fd);用于返回文件指针当前位置相对于文件开头的偏移量long int telldir(DIR *dirp);获取目录流的当前位置int textheight(char *string }2.3 运行结果3. tell3.1 函数说明函数声明函数功能 off_t tell(int fd);用于返回文件指针当前位置相对于文件开头的偏移量参数:fd : 是文件描述符,表示要查询的文件3.2 = NULL) { printf("%s\n", direntp->d_name); } closedir(dirp); return 0;}4.3 运行结果5. long double c = truncl(z); printf("double 类型 %.5lf 的整数部分为 %.0lf\n", x, a); printf("float 类型 %.5f 的整数部分为 %.0f\n", y, b); printf("long double 类型 %.8Lf 的整数部分为 %.0Lf\n", z, c); return 0;}12.3
getcwd(buffer, BUFLEN); printf("The current directory is: %s\n", buffer); return 0; } 5. void) { long bios_time; clrscr(); cprintf("The number of clock ticks since midnight is:\r\ n"); cprintf("The number of seconds since midnight is:\r\n"); cprintf("The number of minutes since midnight is:\r\n"); cprintf("The number of hours since midnight is:\r\n"); cprintf("\r\ #include <stdio.h> #define NELEMS(arr) (sizeof(arr) / sizeof(arr[0])) int numarray[] = {1, 2, 3, 5,
void的函数。 (10,3); // 商 和 余数 printf("10 div 3 = %d remainder %d\n", x.quot, x.rem); return 0;}4.3 运行结果5. 20; poly[1] = maxy / 2; poly[2] = maxx - 20; poly[3] = 20; poly[4] = maxx - 50; poly[5] poly[8] = poly[0]; poly[9] = poly[1]; // draw the polygon drawpoly(5, poly); // clean up 首先调用fflush函数来刷新传入的文件流的缓冲区;然后,使用dup函数复制文件描述符,并将其存储在duphandle变量中;接着,打印出复制的文件句柄;最后,关闭复制的文件句柄。
1. nan1.1 函数说明函数声明函数功能 double nan(const char *tagp);用于返回一个表示 NaN(非数值)的 double 类型数字 参数:tagp : 指向字符串的指针 }; req.tv_sec = 2; // 等待时间为 2 秒 req.tv_nsec = 5000000; // 加上 5 毫秒 int ret = nanosleep 在本例中,我们将等待时间设置为 2 秒加上 5 毫秒。接着,我们调用 nanosleep() 函数,并传递 req 变量的地址作为第一个参数。 4.3 运行结果5. nexttoward,nexttowardf,nexttowardl5.1 函数说明函数声明函数功能 double nexttoward(double x, long double 7.3 运行结果8. nice8.1 函数说明函数声明函数功能 int nice(int inc);它是一个系统调用,可将进程截止到当前用户的最大优先级减少指定的优先级,以更改进程的调度优先级。
1.2 演示示例#include <stdio.h>#include <errno.h>int main() { FILE *fp = fopen("tempfile.txt", "r"); double result = std::pow10l(-2.0L); std::cout << "10^-2 = " << result << std::endl; return 0;}<em>5</em>. : 指向线程<em>函数</em><em>的</em>指针,用于指定线程<em>的</em>入口点arg : 传递给线程<em>函数</em><em>的</em>参数,可以为任意类型<em>的</em>指针。 ); putchar('o'); putchar(','); putchar(' '); putchar('w'); putchar('o'); putchar('<em>r</em>' 接下来,程序使用 malloc() <em>函数</em>动态分配了一块内存空间,并调用 getimage() <em>函数</em>获取箭头图像<em>的</em>位图数据。该<em>函数</em>会将指定位置<em>的</em>屏幕区域保存到指定<em>的</em>内存地址中。
4.3 运行结果5. line5.1 函数说明函数声明函数功能 void line( int x1, int y1, int x2, int y2);在指定两点间画一直线参数:(x1, y1) : 第一个点的坐标 (); // 将文本颜色设置为低对比度模式gotoxy(1,2); // 将光标移动到指定的坐标 (x, y),其中 x 和 y 分别为列和行数cprintf("Low Intensity Text\r 然后,将要查找的元素值 key 设置为 5,并调用 lsearch() 函数在数组中查找该元素。如果找到了,则输出该元素在数组中的下标;否则输出未找到的提示。 )SEEK_END: 从文件结尾开始计算偏移量(即反向偏移)返回值:如果成功,则返回新的文件指针位置(即距离文件开头的字节数);如果发生错误,则返回 -1。 然后,调用 lseek() 函数将文件指针移动到距离文件开头 5 个字节处。接着,调用 read() 函数从该位置开始读取 5 个字节的数据,并输出读取结果。
Unix 风格的 \n 转换为 Windows/DOS 风格的 \r\n int dos2unix(const char *src_file, const char *dst_file);用于将将文本文件的行末标志符从 Windows/DOS 风格的 \r\n 转换为 Unix 风格的 \n int unlink(const char *pathname);用于删除指定文件 int unlock(int handle Windows/DOS 风格的 \r\n 转换为 Unix 风格的 \n 参数:src_file : 要转换的源文件名dst_file : 转换后保存到的目标文件名返回值:如果转换成功,则返回 0;否则返回一个 continue; } fputc(c, out); prev = c; } fclose(in); fclose(out); return 0;}5. 通常情况下,偏移量应该为正整数,代表从文件开头开始的偏移量。如果 offset 参数小于零,则将从文件末尾开始向前计算偏移量。
gotoxy(1,2); cprintf("High Intensity Text\r\n"); return 0;}上述利用 <conio.h> 头文件中的函数实现特定的控制台文本显示效果 5. hcreate,hcreate_r5.1 函数说明函数声明函数功能 int hcreate(size_t nel);根据条目数创建哈希表。 注意: hsearch 和 hsearch_r 函数根据指定的操作在哈希表中搜索条目。如果操作为 FIND,则仅执行搜索操作。如果操作为 ENTER,则未找到的条目将添加到哈希表中。 hsearch_r 函数与 hsearch 函数的不同之处在于,指向找到的项的指针以 *retval 形式返回,而不是作为函数结果。入参:item: 要搜索的哈希表条目。action: 功能操作。 6.2 演示示例参考 5.27. hdestroy,hdestroy_r7.1 函数说明函数声明函数功能 void hdestroy(void);销毁哈希表,释放用于创建哈希表的内存。
总览函数声明函数功能 double j0 (double x);计算 x 的 第一类 0 阶贝塞尔函数(double) float j0f (float x);计算 x 的 第一类 0 阶贝塞尔函数(float <time.h>int main() { // 初始化种子 srand48(time(NULL)); // 生成10个随机数 for (int i = 0; i < 5; ++i) { double r = jrand48(); printf("%f\n", r); } return 0;}上述程序首先通过 srand48 然后循环调用 jrand48 函数 5 次,每次输出一个伪随机数。注意,由于 jrand48 函数返回的是一个双精度浮点数(范围在 [0, 1) 内),因此输出时需要使用 %f 格式化符号。 5. join5.1 函数说明函数声明函数功能 int join(pthread_t thread, void **retval);等待线程退出并回收资源在 C 语言中,join 函数不是标准库函数,也不是
总览函数声明函数功能 double cbrt (double x)计算 x 的立方根(double)float cbrtf (float x)计算 x 的立方根(float)long double cbrtl old_dir); if (chdir(old_dir)) { perror("chdir()"); exit(1); } return 0;}4.3 运行结果5. chmod5.1 函数说明函数声明函数功能 int chmod( const char *filename, int pmode);变更文件或目录的权限。 这个句柄通常是通过调用 open 或 creat 函数获得的。size : 新的文件大小,以字节为单位。如果新的大小比当前文件大小大,则文件会被扩展,新增的部分会用零填充。 这个文件描述符通常是通过调用 open、creat 或其他文件操作函数获得的。
的 误差函数(float)long double erfl (long double x);计算 x 的 误差函数(long double)double erfc (double x);计算 x 的互补误差函数 decpt :指出给出小数点位置的整数值, 它是从该字符串的开头位置计算的。0 或负数指出小数点在第一个数字的左边。sign :指出一个指出转换的数的符号的整数。 "string = %-16s decpt = %d sign = %d value = %lf\n", string, decpt, sign, value); value = 0.6789e5; /* 科学记数法 scientific notation */ ndigit = 5; string = ecvt(value, ndigit, &decpt, &sign); printf ,这里不会执行到 printf("result = %d\n", result); perror("exec error"); exit(1);}4.3 运行结果执行失败:执行成功:5.
该函数在某些操作系统上可能不可用,因为它并非标准的 C 语言函数,而是 POSIX 标准中定义的函数。 compare(const void* a, const void* b) { return (*(int*)a - *(int*)b);}int main() { int arr[] = { 5, ,我们首先定义了一个整数数组 arr,并计算出数组的长度,赋值给 n;接着我们输出原始数组 "Before sorting: 5 2 8 4 1 9 3 6 7"然后我们使用 qsort() 函数将其按照升序排列 qsort() 函数中传入一个比较函数 compare(),用于比较两个元素的值。最后我们再次输出排序后的结果 ”After sorting: 1 2 3 4 5 6 7 8 9“。 该函数在某些操作系统上可能不可用,因为它并非标准的 C 语言函数,而是 POSIX 标准中定义的函数。
一个指向 va_list 类型的变量的指针,表示要访问的可变参数列表type : 一个类型说明符,表示下一个参数的类型2.2 演示示例可参考 1.2 中所示3. va_copy3.1 函数说明函数声明函数功能 ,表示目标可变参数列表src : 另一个指向 va_list 类型的变量的指针,表示要被复制的可变参数列表3.2 演示示例可参考 1.2 中所示4. va_end4.1 函数说明函数声明函数功能 void va_end(va_list ap);用于清理一个 va_list 类型的变量参数:ap: 一个指向 va_list 类型的变量的指针,表示要清理的可变参数列表4.2 演示示例可参考 1.2 中所示5 它里面使用 vfprintf() 函数将格式化输出写入到一个文件流中;再然后,调用 rewind() 函数将文件指针重新定位到文件开头;再接着使用 fscanf() 函数从文件中读取数据,并使用 printf 如果创建文件失败,则打印错误信息并退出程序;接着,我们使用 fprintf() 函数将三个数据(一个整型数字、一个浮点数和一个字符串)写入该文件中;再然后,调用 rewind() 函数将文件指针重新定位到文件开头
\n"); sleep(5); printf("Wake up! \n"); Sleep(5000); // 暂停 5 秒钟 printf("Wake up! \n"); sound(1000); // 发出 1000 Hz 音调 Sleep(5000); // 等待 5 秒钟 nosound(); // 停止发声 printf(" \n"); Beep(1000, 5000); // 发出 1000 Hz 音调,持续 5 秒钟 printf("Sound stopped. 4.3 运行结果5. spawnle5.1 函数说明函数声明函数功能 int spawnle(int mode, const char *cmdname, const char *arg0, ...,
总览函数声明函数功能 char *gcvt(double value, int ndigit, char *buf);把浮点数转换成字符串,同时返回一个指向字符串的存储位置的指针的函数。 (void);屏幕的最大x坐标int getmaxy(void);屏幕的最大y坐标1. gcvt1.1 函数说明函数声明函数功能 char *gcvt(double value, int ndigit, char *buf);把浮点数转换成字符串,同时返回一个指向字符串的存储位置的指针的函数。 获取最后一次调用 arc 函数时的坐标信息,并将其存储在 arcinfo 结构体中。使用 sprintf 函数将起始点和结束点的坐标格式化为字符串。在屏幕上显示起始点和结束点的坐标信息。 pattern[5] -= 6; pattern[6] += 7; pattern[7] -= 8; // 选择用户定义的填充模式 setfillpattern(pattern