*/ va_end(args1); /* 清理原始可变参数列表 */}int main() { print_args(3, 10, 20, 30); return 0;}在上面的示例代码中 它里面使用 vfprintf() 函数将格式化输出写入到一个文件流中;再然后,调用 rewind() 函数将文件指针重新定位到文件开头;再接着使用 fscanf() 函数从文件中读取数据,并使用 printf 如果创建文件失败,则打印错误信息并退出程序;接着,我们使用 fprintf() 函数将三个数据(一个整型数字、一个浮点数和一个字符串)写入该文件中;再然后,调用 rewind() 函数将文件指针重新定位到文件开头 args; va_start(args, format); vprintf(format, args); va_end(args);}int main() { int a = 10 9.3 运行结果10. vsscanf10.1 函数说明函数声明函数功能 int vsscanf(const char *str, const char *format, va_list ap);它使用格式化字符串
: abort() 函数用于终止当前程序的执行。 1]=buff[2]=0xff; for (i=3;i<512;i++) buff[i]=0; abswrite(0,1,1,buff); abswrite(0,1,10 ,buff); for (i=0;i<512;i++) buff[i]=0; for (i=2;i<10;i++) abswrite (0,1,i,buff) 如果成功分配内存,allocmem()函数将返回 -1,并打印出已分配内存的段地址;否则,它将返回最大可用段数,并打印出失败的消息。 null terminated string */ strcpy(str, asctime(&t)); printf("%s\n", str); return 0;}9.3 运行结果10
\n"); /* allocate and initialize array */ arr = kcalloc(10, sizeof(int), GFP_KERNEL); if (! = i + 1; } /* print array */ printk(KERN_INFO "Array contents:\n"); for (int i = 0; i < 10 () 函数分配了一个大小为 40 字节的整型数组,并将其初始化为 1 到 10 的连续整数。 ); // 创建子进程 if (pid == 0) { // 子进程 printf("Child process started\n"); sleep(10 10. kmem_cache_alloc10.1 函数说明函数声明函数功能 void *kmem_cache_alloc(struct kmem_cache *cachep, int flags);它是
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 (100, 100, str); outtextxy(100, 120, "Height: "); outtextxy(170, 120, itoa(height, str, 10)); outtextxy (100, 140, "Width: "); outtextxy(170, 140, itoa(width, str, 10)); getch(); closegraph(); return 9.3 运行结果10. tolower10.1 函数说明函数声明函数功能 int tolower(int c);可以用于将一个 ASCII 字符转换为小写字母参数:c : 要转换的字符10.2 演示示例
, getmaxcolor()); /* draw the 3-d bar */ bar3d(midx-50, midy-50, midx+50, midy+50, 10 常见的命令包括读取磁盘扇区(通常是0x02)、写入磁盘扇区(通常是0x03)、检查磁盘扇区是否存在(可能是0x08或0x10,具体取决于BIOS版本)等。 \n"); if (status & 0x10) printf("Selected. \n"); return 0; } 10. biostime 10.1 函数说明 函数声明 函数功能 long biostime(int cmd, long newtime); 读取或设置BIOS stdio.h> #define NELEMS(arr) (sizeof(arr) / sizeof(arr[0])) int numarray[] = {1, 2, 3, 5, 6, 8, 9, 10
,模拟延时的功能;再然后,继续调用 time(NULL) 函数获取当前的系统时间,并赋值给 second;再接着,调用 difftime() 函数计算 first 和 second 之间的时间差【单位: void的函数。 <math.h>int main(void){ div_t x = div(10,3); // 商 和 余数 printf("10 div 3 = %d remainder %d\n 首先调用fflush函数来刷新传入的文件流的缓冲区;然后,使用dup函数复制文件描述符,并将其存储在duphandle变量中;接着,打印出复制的文件句柄;最后,关闭复制的文件句柄。 函数将 msg 字符串写入到标准输出(此时已经重定向到文件),长度为字符串的长度;使用 dup2 函数将标准输出恢复到备份的文件描述符 oldstdout,即将后续的输出内容输出到屏幕上。
", print_file_info, 10, FTW_PHYS); if (result == -1) { perror("nftw"); exit(EXIT_FAILURE 7.3 运行结果8. nice8.1 函数说明函数声明函数功能 int nice(int inc);它是一个系统调用,可将进程截止到当前用户的最大优先级减少指定的优先级,以更改进程的调度优先级。 value: %d\n", nice(0)); // 将进程的优先级减少 10 int result = nice(10); if (result == -1) { perror ;接着,我们使用 nice(10) 函数将进程的调度优先级降低 10;最后将新的优先级值输出到终端。 10. nrand4810.1 函数说明函数声明函数功能 long nrand48(unsigned short xsubi[3]);用于生成带有指定状态的随机数。
x, long double y);用于计算 x 的 y 次幂,并返回结果(long double)double pow10(double x);用于计算 10^x (double)float pow10f (float x);用于计算 10^x (float)long double pow10l(long double x);用于计算 10^x (long double)int printf(const ,pow10f,pow10l4.1 函数说明函数声明函数功能 double pow10(double x);用于计算 10^x (double)float pow10f(float x);用于计算 << "10^-2 = " << result << std::endl; long double result = std::pow10l(-2.0L); std::cout << "10 9.3 运行结果10. putenv10.1 函数说明函数声明函数功能 int putenv(char *string);用于设置环境变量的值。
<fcntl.h> 中的一个函数,用于对文件进行加锁或解锁操作 double log(double x);计算自然对数 double log10(double x);计算以 10 为底的对数void 10. log10.1 函数说明函数声明函数功能 double log(double x);计算自然对数 参数:x : 要计算自然对数的数字。返回值: x 的自然对数,即 ln(x)。 10.3 运行结果11. log1011.1 函数说明函数声明函数功能 double log10(double x);计算以 10 为底的对数参数:x : 要计算以 10 为底的对数的数字返回值: x )SEEK_END: 从文件结尾开始计算偏移量(即反向偏移)返回值:如果成功,则返回新的文件指针位置(即距离文件开头的字节数);如果发生错误,则返回 -1。 然后,调用 lseek() 函数将文件指针移动到距离文件开头 5 个字节处。接着,调用 read() 函数从该位置开始读取 5 个字节的数据,并输出读取结果。
在 DOS 系统中,不同的中断号对应着不同的功能。例如,中断号 0x10 通常用于 BIOS 的视频服务,中断号 0x21 用于 DOS 系统功能调用。 $$$\n"); return 0; } 10. intdosx 10.1 函数说明 函数声明 函数功能 int intdosx(union REGS *inregs, union REGS 在 DOS 和 BIOS 系统中,不同的中断号对应着不同的功能。例如,中断号 0x10 通常用于 BIOS 的视频服务,中断号 0x21 用于 DOS 系统功能调用。 函数声明 函数功能 int ilogb (double x); 获取 x 的对数的积分部分(double) int ilogbf (float x); 获取 x 的对数的积分部分(float) int : 转换后储存的字符数组 radix : 转换进制数,如2,8,10,16 进制等,大小应在2-36之间 21.2 演示示例 #include <stdlib.h> #include <stdio.h
与 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
, long offset, long length);它不是标准 C 库中的函数,而是 Linux/Unix 系统下用于文件锁定和解锁的函数 BOOL UnlockFile(HANDLE hFile, str : 用于存储转换后的字符串base : 要使用的进制数,可以为 2、8、10 或 16函数 ultoa() 将参数 value 转换为以 base 进制表示的形式,并将结果存储在缓冲区 str = EOF && isdigit(ch)) i = 10 * i + ch - 48; if (ch ! /Unix 系统下用于文件锁定和解锁的函数 参数:handle : 要解锁的文件句柄offset: 解锁操作的起始偏移量(以字节为单位)。 通常情况下,偏移量应该为正整数,代表从文件开头开始的偏移量。如果 offset 参数小于零,则将从文件末尾开始向前计算偏移量。
总览函数声明函数功能 double hypot(double x, double y);计算直角三角形的斜边长(double) float hypotf (float x, float y);计算直角三角形的斜边长 正浮点常量表达式(double),这些表达式与浮点函数和运算符在溢出时返回的值相比较#define HUGE_VALF __INFF正浮点常量表达式(float),这些表达式与浮点函数和运算符在溢出时返回的值相比较 hsearch_r 函数与 hsearch 函数的不同之处在于,指向找到的项的指针以 *retval 形式返回,而不是作为函数结果。入参:item: 要搜索的哈希表条目。action: 功能操作。 retval: 指向找到的项的指针。htab : 哈希表的结构体数据。hsearch 函数返回值:如果操作成功,则返回指向哈希表的指针。 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 函数是一个生成伪随机数序列的函数,并且它是可重入的,即可以在多个线程中同时调用而不会出现冲突。 stdlib.h>#include <stdio.h>#include <time.h>int main() { // 初始化种子 srand48(time(NULL)); // 生成10 POSIX 标准的函数。 10. jiffies_delta_to_msecs10.1 函数说明函数声明函数功能 unsigned long jiffies_delta_to_msecs(unsigned long delta)
的 误差函数(float)long double erfl (long double x);计算 x 的 误差函数(long double)double erfc (double x);计算 x 的互补误差函数 (double)float erfcf (float x);计算 x 的互补误差函数(float)long double erfcl (long double x);计算 x 的互补误差函数(long decpt :指出给出小数点位置的整数值, 它是从该字符串的开头位置计算的。0 或负数指出小数点在第一个数字的左边。sign :指出一个指出转换的数的符号的整数。 #include <conio.h>int main(){ char *string; double value; int decpt, sign; int ndigit = 10 // 执行成功,这里不会执行到 printf("result = %d\n", result); perror("exec error"); exit(1);}9.3 运行结果10
该函数在某些操作系统上可能不可用,因为它并非标准的 C 语言函数,而是 POSIX 标准中定义的函数。 注意: 在使用 quick_exit() 函数时需要特别小心,因为它不会调用 atexit() 注册的函数,并且可能导致一些资源泄漏或未完成的操作。 该函数在某些操作系统上可能不可用,因为它并非标准的 C 语言函数,而是 POSIX 标准中定义的函数。 QURT_TIMER_ATTR_CALLBACK_ARGUMENT, (void *)0); // 等待定时器超时 while (1) { qurt_timer_sleep(10 最后进入一个无限循环,每隔 10 毫秒调用 qurt_timer_sleep() 函数进入休眠状态,等待定时器超时。
void restorecrtmode(void);将图形模式恢复到文本模式void rewind(FILE *stream);将文件指针 stream 指向的文件位置重置为文件开头,同时清除任何错误或文件结束标志 4.2 演示示例#include <stdio.h>#include <stdlib.h>int main() { // 分配 10 个整型变量的内存空间 int *p = (int*) malloc free(q); return 0;}在上面的示例中,我们首先使用 malloc() 函数分配了 10 个整型变量的内存空间,并判断是否分配成功。 . rewind10.1 函数说明函数声明函数功能 void rewind(FILE *stream);将文件指针 stream 指向的文件位置重置为文件开头,同时清除任何错误或文件结束标志。 ,我们首先打开一个名为 tempnew.txt 的文件;然后使用 fgets() 函数从文件中读取文本行,并输出内容;接着使用 rewind() 函数将文件指针重置到文件开头,并再次读取文件内容并输出;
总览函数声明函数功能 double cbrt (double x)计算 x 的立方根(double)float cbrtf (float x)计算 x 的立方根(float)long double cbrtl 这个句柄通常是通过调用 open 或 creat 函数获得的。size : 新的文件大小,以字节为单位。如果新的大小比当前文件大小大,则文件会被扩展,新增的部分会用零填充。 clearerr(fp); } printf("Error Flag : %d", ferror(fp)); fclose(fp); return 0;}9.3 运行结果10 include <io.h>int main(){ int handle; char buf[11] = "0123456789"; /* create a file containing 10 handle = creat("temp1.txt", S_IREAD | S_IWRITE); printf("Create file successfully"); /* write 10
总览函数声明函数功能 unsigned int sleep(unsigned int seconds);它是 C 语言标准库中的函数,用于使当前进程挂起一定的时间。 ,则可以定义如下:#define _SH_DENYRW 0x10#define _SH_DENYWR 0x20#define _SH_DENYRD 0x30#define _SH_DENYNO 0x402.3 <stdlib.h>#include <time.h>int main() { int i; // 使用当前时间作为种子值 srand(time(NULL)); // 生成 10 个随机数并输出到控制台 for (i = 0; i < 10; i++) { printf("%d ", rand()); } printf("\n"); 9.3 运行结果10. sscanf10.1 函数说明函数声明函数功能 int sscanf(const char *str, const char *format, ...)
总览函数声明函数功能 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);把浮点数转换成字符串,同时返回一个指向字符串的存储位置的指针的函数。 该 buffer 应足够大以便容纳转换的值加上结尾的 结束符 '\0',它是自动添加的。如果一个缓冲区的大小为 ndigit + 1,则 gcvt 函数将覆盖该缓冲区的末尾。 获取最后一次调用 arc 函数时的坐标信息,并将其存储在 arcinfo 结构体中。使用 sprintf 函数将起始点和结束点的坐标格式化为字符串。在屏幕上显示起始点和结束点的坐标信息。