C语言函数大全--r 开头的函数

总览
| 函数声明 | 函数功能 | 
|---|---|
int raise(int sig); | 
用于向当前进程发送指定的信号。 | 
int rand(void); | 
用于生成伪随机数 | 
ssize_t read(int fd, void *buf, size_t count); | 
用于从文件描述符读取数据的函数。 | 
void *realloc(void *ptr, size_t size); | 
用于重新分配已经分配过内存的空间大小。 | 
void rectangle( int left, int top, int right, int bottom); | 
画一个矩形 | 
int registerbgidriver(void(*driver)(void)); | 
用于将BGI(Borland Graphics Interface)驱动程序注册到系统中 | 
int remove(char *filename); | 
用于删除指定的文件 | 
int rename(char *oldname, char *newname);  | 
用于重命名或移动文件。 | 
void restorecrtmode(void); | 
将图形模式恢复到文本模式 | 
void rewind(FILE *stream); | 
将文件指针 stream 指向的文件位置重置为文件开头,同时清除任何错误或文件结束标志。 | 
int rmdir(const char *path); | 
用于删除一个空目录,即该目录必须为空。 | 
double round(double x); | 
将传入的实数参数 x 四舍五入为最接近的整数(double) | 
float roundf(float x); | 
将传入的实数参数 x 四舍五入为最接近的整数(float) | 
long double roundl(long double x); | 
将传入的实数参数 x 四舍五入为最接近的整数(long double) | 
double remainder(double x, double y); | 
用于计算两个浮点数的余数(即模运算结果)(double) | 
float remainderf (float x, float y ); | 
用于计算两个浮点数的余数(即模运算结果)(float) | 
long double remainderl (long double x, long double y); | 
用于计算两个浮点数的余数(即模运算结果)(long double) | 
double remquo(double x, double y, int *quo); | 
用于计算两个浮点数的余数,并返回商和余数。 | 
float remquof(float x, float y, int *quo); | 
用于计算两个浮点数的余数,并返回商和余数。 | 
long double remquol(long double x, long double y, int *quo); | 
用于计算两个浮点数的余数,并返回商和余数。 | 
double rint(double x); | 
将 x 四舍五入到最接近的整数(double) | 
float rintf(float x); | 
将 x 四舍五入到最接近的整数(float) | 
long double rintl(long double x); | 
将 x 四舍五入到最接近的整数(long double) | 
1. raise
1.1 函数说明
| 函数声明 | 函数功能 | 
|---|---|
int raise(int sig); | 
用于向当前进程发送指定的信号。 | 
参数:
- sig : 指定要发送的信号编号
 
返回值:
- 如果调用成功,
raise()函数将返回0; - 否则,它将返回一个非零值。
 
1.2 演示示例
1  | 
  | 
在上面的示例中,
- 我们首先使用 
signal()函数设置了一个处理SIGINT信号的处理程序sigint_handler()。 - 然后,在主循环中,我们随意输入一个字符后,就使用 raise() 函数向当前正在运行的进程发送 SIGINT 信号。当收到 SIGINT 信号时,程序将打印一条消息并退出。
 
注意:
raise()函数只能向当前进程发送信号,不能向其他进程发送信号。如果要向其他进程发送信号,可以使用kill()函数。
1.3 运行结果

2. rand
2.1 函数说明
| 函数声明 | 函数功能 | 
|---|---|
int rand(void); | 
用于生成伪随机数 | 
返回值:
 每次调用它时会返回一个介于 0 和 RAND_MAX 之间的伪随机整数。其中,RAND_MAX 是一个常量,表示返回值的最大值,通常为 32767。
2.2 演示示例
1  | 
  | 
注意:
- 每次程序运行时,
rand()函数返回的随机数序列都是相同的。如果要生成不同的随机数序列,可以使用srand()函数提供的种子来初始化随机数发生器。 - 由于 
rand()函数只能生成伪随机数,不能保证其真正的随机性。因此,在需要高度安全性的应用程序中,建议使用更加安全的随机数生成器,如/dev/random和/dev/urandom等系统提供的硬件随机数生成器。 
2.3 运行结果

3. read
3.1 函数说明
| 函数声明 | 函数功能 | 
|---|---|
ssize_t read(int fd, void *buf, size_t count); | 
用于从文件描述符读取数据的函数。 | 
参数:
- fd : 要读取的文件描述符
 - buf : 存储读取数据的缓冲区
 - count : 要读取的字节数。
 
3.2 演示示例
1  | 
  | 
在上述的示例中,
- 我们首先定义了一个大小为 
BUFFER_SIZE的字符数组buffer; - 然后使用 
read()函数读取标准输入【STDIN_FILENO表示标准输入的文件描述符】中的数据到buffer中; - 最后将读取的结果输出到控制台上。
 
3.3 运行结果

4. realloc
4.1 函数说明
| 函数声明 | 函数功能 | 
|---|---|
void *realloc(void *ptr, size_t size); | 
用于重新分配已经分配过内存的空间大小。 | 
参数:
- ptr : 指向已分配内存区域的指针
 - size : 需要分配的新内存大小
 
返回值:
- 它会尝试重新调整已经分配给 
ptr指向的内存区域大小,并返回一个指向新内存起始地址的指针。 - 如果无法分配新的内存,则返回空指针 
NULL。 
注意: realloc() 函数并不保证原有的内存区域内容会被完全保留。当内存大小增加时,可能会分配新的内存并将原有的数据复制到新内存区域中;当内存大小减小时,则可能截断部分原有的数据。因此,在使用 realloc() 函数时,需要注意备份原有的数据,以免出现数据丢失的情况。
4.2 演示示例
1  | 
  | 
在上面的示例中,
- 我们首先使用 
malloc()函数分配了10个整型变量的内存空间,并判断是否分配成功。 - 接着,我们使用 
realloc()函数将分配的内存空间大小扩充为20个整型变量,并判断是否分配成功。 - 最后,我们输出了原有的内存地址和新的内存地址,并释放了新分配的内存空间。
 
注意: 在使用 realloc() 函数时,应该始终检查返回值,以确保分配内存空间成功,避免因内存不足或其他原因导致程序崩溃。另外,也应该避免过度使用 realloc() 函数,因为频繁地重新分配内存会影响程序性能。
5. rectangle
5.1 函数说明
| 函数声明 | 函数功能 | 
|---|---|
void rectangle( int left, int top, int right, int bottom); | 
画一个矩形 | 
参数:
left, top, right, bottom,它们分别表示矩形左上角和右下角的坐标。
5.2 演示示例
1  | 
  | 
5.3 运行结果

6. registerbgidriver
6.1 函数说明
| 函数声明 | 函数功能 | 
|---|---|
int registerbgidriver(void(*driver)(void)); | 
用于将BGI(Borland Graphics Interface)驱动程序注册到系统中 | 
注意:
它必须在使用任何 BGI 图形函数之前调用。该函数接受一个指向驱动程序结构的指针作为参数,并返回一个整数值以指示是否成功注册了驱动程序。BGI 驱动程序主要用于支持 Borland C++ 等 IDE 环境下的图形绘制和显示操作,它们通常存储在一个单独的库文件中,例如 graphics.h 头文件需要使用的 BGI driver 位于 libbgi.a 文件中。
6.2 演示示例
1  | 
  | 
7. remove
7.1 函数说明
| 函数声明 | 函数功能 | 
|---|---|
int remove(char *filename); | 
用于删除指定的文件 | 
参数:
- filename : 一个指向要删除文件的文件名的字符串指针
 
返回值:
返回一个整数表示操作是否成功
- 如果文件成功删除,则返回 
0; - 否则,返回非零值以指示发生错误。
 
7.2 演示示例
1  | 
  | 
7.3 运行结果


8. rename
8.1 函数说明
| 函数声明 | 函数功能 | 
|---|---|
int rename(char *oldname, char *newname);  | 
用于重命名或移动文件。 | 
参数:
oldname :指定要更改的文件名newname :指定新文件名或包含新路径的新文件名
返回值:
- 在执行成功时,该函数返回 
0; - 否则返回非零值以指示发生错误。
 
8.2 演示示例
1  | 
  | 
8.3 运行结果

9. restorecrtmode
9.1 函数说明
| 函数声明 | 函数功能 | 
|---|---|
void restorecrtmode(void); | 
将图形模式恢复到文本模式 | 
9.2 演示示例
1  | 
  | 
9.3 运行结果

10. rewind
10.1 函数说明
| 函数声明 | 函数功能 | 
|---|---|
void rewind(FILE *stream); | 
将文件指针 stream 指向的文件位置重置为文件开头,同时清除任何错误或文件结束标志。 | 
10.2 演示示例
1  | 
  | 
在上述的示例中,
- 我们首先打开一个名为 
tempnew.txt的文件; - 然后使用 
fgets()函数从文件中读取文本行,并输出内容; - 接着使用 
rewind()函数将文件指针重置到文件开头,并再次读取文件内容并输出; - 最后关闭文件,退出程序。
 
10.3 运行结果


11. rmdir
11.1 函数说明
| 函数声明 | 函数功能 | 
|---|---|
int rmdir(const char *path); | 
用于删除一个空目录,即该目录必须为空。 | 
参数:
- path : 待删除的空目录路径
 
返回值:
- 如果成功,则返回 
0; - 否则返回 
-1,并设置errno错误码。 
11.2 演示示例
1  | 
  | 
在上述的示例中,
- 我们首先创建一个名为 
test的目录; - 然后在其中创建两个文件 
file1.txt和file2.txt; - 接着使用 
rmdir()函数尝试删除该目录,但会失败,因为该目录不是空的。 
注意: 如果要删除非空目录,可以使用上面的 remove() 函数来删除目录及其所有内容。
11.3 运行结果

12. round,roundf,roundl
12.1 函数说明
| 函数声明 | 函数功能 | 
|---|---|
double round(double x); | 
将传入的实数参数 x 四舍五入为最接近的整数(double) | 
float roundf(float x); | 
将传入的实数参数 x 四舍五入为最接近的整数(float) | 
long double roundl(long double x); | 
将传入的实数参数 x 四舍五入为最接近的整数(long double) | 
12.2 演示示例
1  | 
  | 
12.3 运行结果

13. remainder,remainderf,remainderl
13.1 函数说明
| 函数声明 | 函数功能 | 
|---|---|
double remainder(double x, double y); | 
用于计算两个浮点数的余数(即模运算结果)(double) | 
float remainderf (float x, float y ); | 
用于计算两个浮点数的余数(即模运算结果)(float) | 
long double remainderl (long double x, long double y); | 
用于计算两个浮点数的余数(即模运算结果)(long double) | 
参数:
- x : 被除数
 - y : 除数
 
返回值: x/y 的余数
13.2 演示示例
1  | 
  | 
13.3 运行结果

14. remquo,remquof,remquol
14.1 函数说明
| 函数声明 | 函数功能 | 
|---|---|
double remquo(double x, double y, int *quo); | 
用于计算两个浮点数的余数,并返回商和余数。 | 
float remquof(float x, float y, int *quo); | 
用于计算两个浮点数的余数,并返回商和余数。 | 
long double remquol(long double x, long double y, int *quo); | 
用于计算两个浮点数的余数,并返回商和余数。 | 
参数:
- x : 被除数
 - y : 除数
 - quo : 返回商的指针。如果不需要返回商,则可以传递 
NULL 
返回值: 返回 x/y 的余数,并通过 quo 指针返回商。
14.2 演示示例
1  | 
  | 
14.3 运行结果

15. rint,rintf,rintl
15.1 函数说明
| 函数声明 | 函数功能 | 
|---|---|
double rint(double x); | 
将 x 四舍五入到最接近的整数(double) | 
float rintf(float x); | 
将 x 四舍五入到最接近的整数(float) | 
long double rintl(long double x); | 
将 x 四舍五入到最接近的整数(long double) | 
15.2 演示示例
1  | 
  | 
15.3 运行结果
