- 博客(48)
- 资源 (1)
- 收藏
- 关注
原创 列出指定目录下与正则表达式”abc*”匹配的所有文件
#include#include#include#include#include#include#include#define MAX 1024int dir_run(char *path,char *str){ DIR *dir; struct stat st; struct dirent *entry,*en;
2014-06-14 18:49:50 1713
原创 列出指定目录下与正则表达式”*.sh”匹配的所有文件
#include#include#include#include#include#include#include#define MAX 1024int dir_run(char *path,char *str){ DIR *dir; struct stat st; struct dirent *entry,*en; c
2014-06-14 18:46:56 1180
原创 删除指定目录下的某个普通文件
描述:先判断指定目录下是否存在该文件,如果不存在,则返回错误。如果存在,那么调用unlink函数或remove函数来删除。 要求:将文件的绝对路径和文件名做输入参数,打印信息表明是否删除成功。 知识点:int unlink(const char * pathname)#include int remove(const char * pathname)#include
2014-06-14 18:40:17 540
原创 在指定目录下删除一个空目录
要求:给出指定目录和要删除的子目录名做输入参数,打印信息表明是否删除成功。判断要删除的目录是否存在于指定目录下,如果存在,则再判断该目录是否为空。知识点:删除目录函数:int rmdir(const char *pathname)#include
2014-06-14 18:35:18 953
原创 在指定目录下创建一个新目录
要求:给出指定目录和要新建的子目录名做输入参数,打印信息表明是否创建成功。首先判断指定目录下是否已存在要创建的目录,如果已存在,则不必再创建。知识点:创建目录函数:int mkdir(const char *pathname,mode_t mode)#include #include #include
2014-06-14 18:29:51 9173
原创 列出指定目录下属于给定用户的所有文件
要求:给定目录路径和用户名作为输入参数,打印输出该目录下属于该用户的所有文件名。 知识点: struct passwd * getpwnam(const char * name) #include #include getpwnam()用来逐一搜索参数name 指定的账号名称,找到时便将该用户的数据以passwd结构返回。如果返回NULL 则表示已无
2014-06-14 18:23:38 794
原创 列出指定目录下所有可被其他用户执行的文件
知识点: stat中的st_mode中包含了文件的访问权限位,共有9个:S_IRUSR: 用户读 S_IWUSR: 用户写 S_IXUSR: 用户执行S_IRGRP: 组成员读S_IWGRP: 组成员写S_IXGRP: 组成员执行S_IROTH: 其他用户读S_IWOTH: 其他用户写S_IXOTH: 其他用户执行使用st_mode & S_IXOTH 可以获得文件的其
2014-06-14 18:19:52 578
原创 列出指定目录下在过去一小时内被修改的文件
要求:可在子任务9的基础上完成,输出该路径下所有当前时刻起前一小时内被修改的文件及其对应的最后被修改时间。知识点:使用time函数获得当前的时间:time_t time(time_t *t)#include此函数会返回从公元1970年1月1日的UTC时间从0时0分0秒算起到现在所经过的秒数。如果t 并非空指针的话,此函数也会将返回值存到t指针所指的内存。
2014-06-14 18:15:18 1628 4
原创 列出指定目录下所有文件的最后被修改时间
要求:输入指定目录路径,输出该路径下所有文件及其对应的最后被修改时间。知识点:在Linux下,一个文件也有三种时间,分别是:访问时间、修改时间、状态改动时间。int stat(const char *restrict pathname, struct stat *restrict buf)通过stat结构体中的成员变量st_mtime可以获得文件的最后被修改时间
2014-06-14 18:09:33 1603
原创 递归列出指定目录下所有的普通文件
要求:打印输出指定目录下所有普通文件,若文件为子目录,则递归搜索子目录下的普通文件。知识点:普通文件(Regular File)。指普通意义上的文件,如数据文件、可执行文件等。与其他类型的文件区别开来。int stat(const char *restrict pathname, struct stat *restrict buf) 宏定义S_ISREG (st_mode)判断是否为普通文件。
2014-06-14 17:51:46 1467
原创 递归列出指定目录下所有的符号链接文件
要求:打印输出指定目录下所有符号链接文件,若文件为子目录,则递归搜索子目录下的符号链接文件。知识点: int lstat(const char *restrict pathname, struct stat *restrict buf) #include #include 函数说明 lstat()与stat()作用完全相同,都是取得参数file_name所指的文件状
2014-06-14 17:49:42 1293
原创 搜索指定目录下是否存在某个文件
描述:搜索指定目录下是否存在某个文件,如果存在,则输出该文件的绝对路径要求:指定目录路径与待搜索文件名作为输入参数,打印输出搜素结果信息。如果判断文件是目录文件,则需要递归进行搜索知识点:DIR* opendir (const char * path ) struct dirent *readdir(DIR *dir)根据dirent结构体中获得的文件的文件名,来判断是否是要搜素
2014-06-14 17:46:56 1037
原创 递归列出指定目录下的所有文件的绝对路径
#include#include#include#include#include#include#include#define SIZE 1024int dir_run(char *path){ DIR *dir; dir = opendir(path); if (dir == NULL) {
2014-06-14 17:42:22 1486
原创 递归列出指定目录下的所有文件名
知识点:递归函数:一个过程(或函数)直接或间接调用自己本身,这种过程(或函数)叫递归过程(或函数)递归就是在过程或函数里调用自身在使用递增归策略时,必须有一个明确的递归结束条件在判断文件是目录文件后,递归调用函数遍历该子目录
2014-06-14 15:33:59 1043
原创 列出指定目录下的所有文件的绝对路径
要求:指定目录路径做输入参数,打印输出该路径下所有文件的绝对路径使用非递归方式 知识点:绝对路径由指定目录的绝对路径加上文件的相对路径得到 使用sprintf()创建绝对路径int sprintf( char *buffer, const char *format, [ argument] … )buffer:char型指针,指向将要写入的字符串的缓冲区。format:
2014-06-14 15:31:33 3136 1
原创 列出指定目录下所有文件名
要求:绝对路径名做输入参数,打印输出该路径下所有文件名 知识点:打开目录函数:DIR* opendir (const char * path )读取目录函数:struct dirent *readdir(DIR *dir)返回下一个目录项的指针。#include #include
2014-06-14 15:27:46 1037
原创 判断文件是否是目录文件
描述:给出一个文件的绝对路径,判断该文件是否是目录文件要求:将文件的绝对路径做输入参数,打印信息表明该文件是否为目录 知识点:获取文件的属性int stat(const char *restrict pathname, struct stat *restrict buf) #include #include
2014-06-14 15:23:35 882
原创 文件的删除
要求:输入要删除的文件名,输出是否删除成功的信息。知识点:int remove(const char *filename)参数: filename: 要删除的文件的名称返回值:一旦成功,则返回0,否则,返回-1头文件:stdio.h
2014-06-14 15:18:18 466
原创 文件另存为
描述:将已有文件另存为一个新的文件。综合文件的创建和读写操作。要求:输入文件名以及要另存为的新文件名,输出是否成功的信息。知识点:FILE *fopen(const char *path, const char *mode);size_t fread(void *ptr, size_t size, size_t nmemb, FILE *stream)size_t fwrite(const voi
2014-06-14 15:15:41 1667
原创 文件的重命名
要求:输入文件名以及新文件名,输出是否成功命名文件。 知识点:int rename(const char *old_filename, const char *new_filename)old_filename: 包含将要被重命名的文件的原始名称。new_filename:新的文件名称。返回值:一旦成功,返回0,否则,返回-1.
2014-06-14 15:12:36 463
原创 文件写
要求:输入文件名及要写入文件的字符串,输出写入后文件的内容。每次需要在原有文件内容基础上追加写入。知识点:size_t fwrite(const void *ptr, size_t size, size_t nmemb, FILE *stream)头文件:stdio.hptr:要获取的数据的地址(指针)size:单个元素的大小,单位是字节nmemb:元素个数stream:提供数据的文件指针返回值:
2014-06-14 15:10:22 421
原创 文件读
要求:命令行中以文本文件名做输入参数,打印文件中内容。知识点:读函数:size_t fread(void *ptr, size_t size, size_t nmemb, FILE *stream)size:单个元素的大小,单位是字节 nmemb:元素个数 stream:提供数据的文件指针返回值:读取的元素的个数头文件:stdio.h;
2014-06-14 15:06:30 401
原创 文件创建
描述:创建一个新的文件。要求:输入要创建的文件名,输出是否创建成功信息。知识点:FILE *fopen(const char *path, const char *mode) ,注意打开方式mode的选择。如果打开文件成功,则fopen函数返回一个指向FILE结构体的指针,否则返回NULL。调用结束后注意关闭文件:int fclose(FILE* stream)注意:fopen()与fcl
2014-06-14 15:01:43 532
原创 修改文件的访问时间和修改时间为当前的时间
要求:输入文件名,输出处理前文件的最后访问/修改时间和处理后的最后访问/修改时间。知识点:int utime(const char * pathname, const struct utimbuf * times); #include times: 结构体struct utimbuf变量。
2014-06-14 14:50:11 2233
原创 修改文件的组id
要求:输入文件名和新的组id,打印输出该文件原有组id和新的组id。知识点:chown函数:int chown(const char *pathname, uid_t owner, gid_t group);#include #include 参数pathname表示文件的路径参数owner表示新的所有者用户的ID。 参数group表示新的组ID。 参数o
2014-06-14 14:47:09 957
原创 获取文件属性
描述:获取文件的用户id,组id,大小,最后访问时间,最后修改时间。要求:输入文件名,打印输出该文件用户id,组id,大小,最后访问时间,最后修改时间。知识点:int stat(const char *restrict pathname, struct stat *restrict buf);stat结构体
2014-06-14 14:43:40 483
原创 设置文件的文件访问权限为:rw-r--r--
描述:rw- (user权限) / r– (group权限) / r– (others权限)r: 读权限 w: 写权限 x: 执行权限要求:输入文件名,打印输出该文件初始权限,以及修改为rw-r--r--后的权限知识点:设置文件的多个权限位,对这些权限位进行按位或操作即可。S_IRUSR | S_IWUSR
2014-06-14 14:39:41 11464
原创 关闭文件的 group的写权限和other的写权限
要求:输入文件名,打印输出该文件初始的group和others权限,以及关闭写权限后的group和others权限 知识点:用stat函数来获取文件的访问权限,然后用chmod函数来关闭group的写权限和other的写权限。修改权限函数: int chmod(const char * path,mode_t mode) #include #include 函数
2014-06-14 14:36:02 1050
原创 获取文件的user, group, others访问权限
描述:文件的访问权限分为:用户读,用户写,用户执行;组用户读,组用户写,组用户执行;其他用户读,其他用户写,其他用户执行。通过访问struct stat结构体中的st_mode成员,可以获取到文件的访问权限。要求:输入文件名,分别打印该文件的user、group及others的访问权限。知识点:获取文件的属性int stat(const char *restrict pathnam
2014-06-14 14:33:02 1049
原创 MySQL-WorkBench中出现Error communicating with gnome-keyring-daemon的处理方法
gedit /usr/bin/mysql-workbench and added the lineexport WB_NO_GNOME_KEYRING=1http://bugs.mysql.com/bug.php?id=52866关于这个人写的http://blog.sina.com.cn/s/blog_7187e24301016gj2.html#commonComment是完全错误的,是完
2014-06-14 12:09:04 1497
原创 利用 select 模型,实现一个 I/O 复用模式的服务器
/*server.c*/#include#include#include#include#include#include#include#include#include#include#include#include#define PORT 1234#define MAX_QUE 5#define BUF_SIZE 1024#defi
2014-06-13 18:34:46 698
原创 设计和实现简单的协议,支持传输文件名和文件内容
/*server.c*/#include#include#include#include#include#include#include#include#include#include#include#include #define PORT 1234#define MAX_QUE 5
2014-06-13 18:01:44 709
原创 在server程序中,将接收到的字符串保存到指定文件
/*server.c*/#include#include#include#include#include#include#include#include#include#include#include#define PORT 1234#define MAX_QUE 5#define BUF_SIZE 1024int main(int ar
2014-06-13 11:36:59 553
原创 在client程序中,从指定文件读取数据并发送给server程序
/*server.c*/#include#include#include#include#include#include#include#include#include#define PORT 1234#define MAX_QUE 5#define BUF_SIZE 1024int main(){ struct sockaddr_
2014-06-13 11:33:55 677
原创 为服务器程序增加清理僵尸进程机制
/*server.c*/#include#include#include#include#include#include#include#include#include#include#include#include#define PORT 1234#define MAX_QUE 5#define BUF_SIZE 1024void
2014-06-12 16:52:28 513
原创 为多线程server端增加与client的交互通信功能
/*server.c*/#include#include#include#include#include#include#include#include#include#include#include#define PORT 1234#define MAX_QUE 5#define BUF_SIZE 1024int main(){
2014-06-12 16:00:52 628
原创 实现server程序,支持多个client同时连接,为每一个client分配一个进程
/*server.c*/#include#include#include#include#include#include#include#include#include#define PORT 1234#define MAX_QUE 5int main(){ struct sockaddr_in local_sockaddr;
2014-06-12 14:11:20 2616
原创 用UDP实现client程序发送字符串到server程序,server程序将字符串打印出来。
/*server.c*/#include#include#include#include#include#include#include#include#include#define PORT 1234#define BUF_SIZE 1024int main(){ struct sockaddr_in local_sockaddr;
2014-06-12 13:10:36 703
原创 实现client程序发送字符串到server程序,server程序将字符串打印出来
/*server#include#include#include#include#include#include#include#include#include#define PORT 1234#define MAX_QUE 5#define BUF_SIZE 1024int main(){ struct sockaddr_in
2014-06-12 13:08:33 1525
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人