linux|linuxC常用函数
目录
C语言常用函数
access(char* path,int mode)函数:用于检查文件
atoi()函数:将字符串转换成int(整数)
execl()函数:执行文件函数
fopen()函数:打开指定路径的文件,获取指向该文件的指针。
fwrite()函数:将一块内存区域中的数据写入到本地文本
fread()函数:从一个文件流中读取数据
fclose()函数:关闭一个流,关闭打开文件、
goto语句也称为无条件转移语句
lstat函数:或取文件相关信息
Memcpy函数:从源src所指的内存地址的起始位置开始,拷贝n个字节的数据到目标dest所指的内存地址的起始位置中
open()函数:打开文件
opendir()函数:打开一个目录,在失败的时候返回一个空的指针。
readdir函数:读取opendir 返回值的那个列表
pipe()函数:建立管道
S_ISDIR()函数:判断一个路径是否为目录
strcat()函数:用于拼接字符
【linux|linuxC常用函数】strcpy()函数:复制字符串
strncpy()函数:用来复制字符串的前n个字符
access(char* path,int mode)函数:用于检查文件 参数path 是访问文件所在的路径名,mode是访问判断模式,是否存在(mode 00),是否只可读(mode 02),是否只可写(mode 04),是否可读写(mode 06)。
atoi()函数:将字符串转换成int(整数) atof()函数:将字符串转换成float(浮点数)
头文件:#include
原型为:int atoi (const char * str);
返回值:返回转换后的整型数;如果 str 不能转换成 int 或者 str 为空字符串,那么将返回 0。
函数说明:atoi() 函数会扫描参数 str 字符串,跳过前面的空白字符(例如空格,tab缩进等,可以通过 isspace() 函数来检测),直到遇上数字或正负符号才开始做转换,而再遇到非数字或字符串结束时('\0')才结束转换,并将结果返回。
execl()函数:执行文件函数 头文件: #include
定义函数:intexecl(const char * path, const char * arg, ...);
函数说明:execl()用来执行参数path 字符串所代表的文件路径, 接下来的参数代表执行该文件时传递过去的argv(0),argv[1], ..., 最后一个参数必须用空指针(NULL)作结束.
execl(“绝对路径” , ”相关参数”… , ”NULL”);
返回值:如果执行成功则函数不会返回,执行失败则直接返回-1, 失败原因存于errno 中.
fopen()函数:打开指定路径的文件,获取指向该文件的指针。 原型:FILE * fopen(const char * path,const char * mode);
参数:path: 文件路径,如:"F:\Visual Stdio 2012\test.txt"
mode: 文件打开方式,例如:
"r" 以只读方式打开文件,该文件必须存在。
"w" 打开只写文件,若文件存在则文件长度清为0,即该文件内容会消失。若文件不存在则建立该文件。
"w+" 打开可读写文件,若文件存在则文件长度清为零,即该文件内容会消失。若文件不存在则建立该文件。
"a" 以附加的方式打开只写文件。若文件不存在,则会建立该文件,如果文件存在,写入的数据会被加到文件尾,即文件原先的内容会被保留。(EOF符保留)
"a+" 以附加方式打开可读写的文件。若文件不存在,则会建立该文件,如果文件存在,写入的数据会被加到文件尾后,即文件原先的内容会被保留。(原来的EOF符不保留)
"wb" 只写打开或新建一个二进制文件,只允许写数据。
"wb+" 读写打开或建立一个二进制文件,允许读和写。
"ab" 追加打开一个二进制文件,并在文件末尾写数据。
"ab+"读写打开一个二进制文件,允许读,或在文件末追加数据。
返回值: 文件顺利打开后,指向该流的文件指针就会被返回。如果文件打开失败则返回NULL,并把错误代码存在errno中。
fwrite()函数:将一块内存区域中的数据写入到本地文本 原型:size_tfwrite(const void* buffer, size_t size, size_t count, FILE* stream);
参数:buffer:指向数据块的指针
size:每个数据的大小,单位为Byte(例如:sizeof(int)就是4)
count:数据个数
stream:文件指针
返回值:随着调用格式的不同而不同:
(1) 调用格式:fwrite(buf,sizeof(buf),1,fp);
成功写入返回值为1(即count)
(2)调用格式:fwrite(buf,1,sizeof(buf),fp);
成功写入则返回实际写入的数据个数(单位为Byte)
注意:写完数据后要调用fclose()关闭流,不关闭流的情况下,每次读或写数据后,文件指针都会指向下一个待写或者读数据位置的指针。
fread()函数:从一个文件流中读取数据 原型:size_t fread(void *buffer, size_t size, size_t count, FILE *stream);
参数:buffer:指向数据块的指针
size:每个数据的大小,单位为Byte(例如:sizeof(int)就是4)
count:数据个数
stream:文件指针
返回值:随着调用格式的不同而不同:
(1) 调用格式:fread(buf,sizeof(buf),1,fp);
读取成功时:当读取的数据量正好是sizeof(buf)个Byte时,返回值为1(即count)
否则返回值为0(读取数据量小于sizeof(buf))
(2)调用格式:fread(buf,1,sizeof(buf),fp);
读取成功返回值为实际读回的数据个数(单位为Byte)
fclose()函数:关闭一个流,关闭打开文件、 原型:int fclose(FILE *stream);
参数:stream为文件指针,文件描述符
返回值:如果流成功关闭,fclose 返回 0,否则返回EOF(-1)。
goto语句也称为无条件转移语句 格式:goto <标号>;
其中标号需要申请,在程序开头写label <标号1>,<标号2>,……;
标号必须为四位以内的正整数。
在该段落内还需要有<标号>:语句 表示将要转向的方向。
lstat函数:或取文件相关信息 原型: int lstat(const char *path, struct stat *buf);
参数:path:文件路径名。filedes:文件描述词。buf:是以下结构体的指针
struct stat {
dev_t st_dev;
/* 文件所在设备的标识 */
ino_t st_ino;
/* 文件结点号 */
mode_t st_mode;
/* 文件保护模式 */
nlink_t st_nlink;
/* 硬连接数 */
uid_t st_uid;
/* 文件用户标识 */
gid_t st_gid;
/* 文件用户组标识 */
dev_t st_rdev;
/* 文件所表示的特殊设备文件的设备标识 */
off_t st_size;
/* 总大小,字节为单位 */
blksize_t st_blksize;
/* 文件系统的块大小 */
blkcnt_t st_blocks;
/* 分配给文件的块的数量,512字节为单元 */time_t st_atime;
/* 最后访问时间 */
time_t st_mtime;
/* 最后修改时间 */
time_t st_ctime;
/* 最后状态改变时间 */
};
返回值:成功执行时,返回0。失败返回-1,errno被设为以下的某个值
EBADF: 文件描述词无效EFAULT: 地址空间不可访问ELOOP: 遍历路径时遇到太多的符号连接ENAMETOOLONG:文件路径名太长ENOENT:路径名的部分组件不存在,或路径名是空字串ENOMEM:内存不足ENOTDIR:路径名的部分组件不是目录
Memcpy函数:从源src所指的内存地址的起始位置开始,拷贝n个字节的数据到目标dest所指的内存地址的起始位置中 头文件:#include
原型:void *memcpy(void*dest, const void *src, size_t n);
说明:
open()函数:打开文件 头文件:#include#include#include
定义函数:int open(const char * pathname, int flags);
int open(const char * pathname, int flags, mode_t mode);
返回值:若成功则返回0,否则返回-1。
opendir()函数:打开一个目录,在失败的时候返回一个空的指针。 头文件:#include
#include
原型:DIR* opendir (const char * path );
(获取path子目录下的所由文件和目录的列表,如果path是个文件则返回值为NULL)
返回值(DIR): DIR 结构体的原型为:struct_dirstream
readdir函数:读取opendir 返回值的那个列表 头文件:#include
原型:struct dirent* readdir(DIR* dir_handle);
(个人理解循环读取dir_handle,目录和文件都读)
返回值:返回dirent结构体指针,dirent结构体
pipe()函数:建立管道 头文件:#include
定义函数:int pipe(int filedes[2]);
函数说明:pipe()会建立管道,并将文件描述词由参数 filedes 数组返回。
filedes[0]为管道里的读取端,所以pipe用read调用的
filedes[1]则为管道的写入端。
返回值: 若成功则返回零,否则返回-1,错误原因存于 errno 中。
S_ISDIR()函数:判断一个路径是否为目录 S_ISDIR( statbuf.st_mode )的函数功能是判断statbuf所指向文件(也就是FileName)是否为目录(dir)类型。
strcat()函数:用于拼接字符 接受两个字符串作为参数。该函数把第2个字符串的备份附加在第1个字符串末尾,并把拼接后形成的新字符串作为第1个字符串,第二个字符串不变。
strcat()函数的类型是char *(即,指向char的指针)。strcat()函数返回第一个参数,即拼接第2个字符串后的第1个字符串的地址。
strcpy()函数:复制字符串 头文件:#include
原型:extern char *strcpy(char *dest,char *src);
功能:把src所指由NULL结束的字符串复制到dest所指的数组中
说明:src和dest所指内存区域不可以重叠且dest必须有足够的空间来容纳src的字符串。
返回指向dest的指针。
strncpy()函数:用来复制字符串的前n个字符 头文件:#include
原型:char * strncpy(char *dest, const char *src, size_t n);
参数说明:dest 为目标字符串指针,src 为源字符串指针。
说明:strncpy()会将字符串src前n个字符拷贝到字符串dest。
使用strncpy()最安全方式是使n等于strlen(src)+1,即拷贝整个字符串,同时将'\0'追加到dest。但这又与strcmp()的作用没有什么两样
推荐阅读
- 标签、语法规范、内联框架、超链接、CSS的编写位置、CSS语法、开发工具、块和内联、常用选择器、后代元素选择器、伪类、伪元素。
- Linux下面如何查看tomcat已经使用多少线程
- 数组常用方法一
- Beego打包部署到Linux
- Linux|109 个实用 shell 脚本
- linux定时任务contab
- 芯灵思SinlinxA33开发板Linux内核定时器编程
- 常用git命令总结
- java|java 常用知识点链接
- day16-Linux|day16-Linux 软件管理