欢迎来到三一办公! | 帮助中心 三一办公31ppt.com(应用文档模板下载平台)
三一办公
全部分类
  • 办公文档>
  • PPT模板>
  • 建筑/施工/环境>
  • 毕业设计>
  • 工程图纸>
  • 教育教学>
  • 素材源码>
  • 生活休闲>
  • 临时分类>
  • ImageVerifierCode 换一换
    首页 三一办公 > 资源分类 > DOC文档下载  

    linux的c编程技巧.doc

    • 资源ID:2384970       资源大小:22KB        全文页数:9页
    • 资源格式: DOC        下载积分:8金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要8金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    linux的c编程技巧.doc

    linux的c编程技巧1. 获取文件的信息:stat(char* filename, struct stat* buf);struct stat dev_t st_dev; /* 设备 */ino_t st_ino; /* 节点 */mode_t st_mode; /* 模式 */nlink_t st_nlink; /* 硬连接 */uid_t st_uid; /* 用户ID */gid_t st_gid; /* 组ID */dev_t st_rdev; /* 设备类型 */off_t st_off; /* 文件字节数 */unsigned long st_blksize; /* 块大小 */unsigned long st_blocks; /* 块数 */time_t st_atime; /* 最后一次访问时间 */time_t st_mtime; /* 最后一次修改时间 */time_t st_ctime; /* 最后一次改变时间(指属性) */;struct statfslong f_type; /* 文件系统类型 */long f_bsize; /* 块大小*/long f_blocks; /* 块多少*/long f_bfree; /* 空闲的块()*/long f_bavail; /* 可用块 */long f_files; /* 总文件节点 */long f_ffree; /* 空闲文件节点 */fsid_t f_fsid; /* 文件系统id */long f_namelen; /* 文件名的最大长度 */long f_spare6; /* spare for later */;2. 获取文件访问权限或者判断文件是否存在:int access(char* filename, int mode);3. 获取当前时间:time_t t;char* asctime(localtime(&t);或者time(&t);char* ctime(&t);得到的字符串形式为:Wed Mar 12 10:07:53 20034. 计算两个时刻之间的时间差double difftime(time_t time2, time_t time1);5. 删除某文件:int unlink(char* pathname);int remove(char* pathname);6. 删除某目录:int rmdir(const char* pathname);7. 获得当前所在目录名:char * getcwd(char *buf,size_t size); buf将会返回目前路径名称。8. 获取目录信息:DIR * opendir(const char * pathname);int closedir(DIR *dir);struct dirent * readdir(DIR *dir);struct direntlong d_ino; /* inode number */off_t d_off; /* offset to this dirent */unsigned short d_reclen; /* length of this d_name */char d_name NAME_MAX+1; /* file name (null-terminated) */;Array. strerror(errno);函数会返回一个指定的错误号的错误信息的字符串.10.得到当前路径下面所有的文件(包含目录)的个数struct dirent *namelist;int num = scandir(".",&namelist,0,alphasort)11./etc/ld.so.conf:包含共享库的搜索位置查看执行文件调用了哪些共享库shell>ldd a.out共享库管理工具,一般在更新了共享库之后要运行该命令shell>ldconfig12.查看文件执行的速度shell>time ./a.out13.改变文件访问权限int chmod(const char* path, mode_t mode);14.改变文件大小int chsize(int handle, long size);15.把一个浮点数转换为字符串char ecvt(double value, int ndigit, int *decpt, int *sign);16.检测文件结束int eof(int *handle);17.检测流上的文件结束符int feof(FILE *stream);18.检测流上的错误int ferror(FILE *stream);1Array.装入并运行其它程序的函数int execl(char *pathname, char *arg0, arg1, ., argn, NULL);int execle(char *pathname, char *arg0, arg1, ., argn, NULL,char *envp);int execlp(char *pathname, char *arg0, arg1, ., NULL);int execple(char *pathname, char *arg0, arg1, ., NULL,char *envp);int execv(char *pathname, char *argv);int execve(char *pathname, char *argv, char *envp);int execvp(char *pathname, char *argv);int execvpe(char *pathname, char *argv, char *envp);20.指数函数double exp(double x);21. struct sockaddrunsigned short sa_family; /* address family, AF_xxx */char sa_data14; /* 14 bytes of protocol address */;struct sockaddr_inshort int sin_family; /* Address family */unsigned short int sin_port; /* Port number */struct in_addr sin_addr; /* Internet address */unsigned char sin_zero8; /* Same size as struct sockaddr */;struct in_addrunsigned long s_addr;s_addr按照网络字节顺序存储IP地址sin_zero是为了让sockaddr与sockaddr_in两个数据结构保持大小相同而保留的空字节。使用的例子:struct sockaddr_in sa;sa.sin_family = AF_INET;sa.sin_port = htons(34Array0);sa.sin_addr.s_addr = inet_addr("132.241.5.10");bzero(&(sa.sin_zero), 8);注意:如果sa.sin_addr.s_addr INADDR_ANY,则不指定IP地址(用于Server程序)22. #define UNIX_PATH_MAX 108struct sockaddr_unsa_family_t sun_family; /* AF_UNIX */char sun_pathUNIX_PATH_MAX; /* 路径名 */;23. IP地址转换函数:unsigned long inet_addr (const char *cp);inet_addr将一个点分十进制IP地址字符串转换成32位数字表示的IP地址(网络字节顺序)char* inet_ntoa (struct in_addr in);inet_ntoa将一个32位数字表示的IP地址转换成点分十进制IP地址字符串。这两个函数互为反函数字节顺序转换:htons()-"Host to Network Short"htonl()-"Host to Network Long"ntohs()-"Network to Host Short"ntohl()-"Network to Host Long"24. 获取当前机器的CPU、内存使用情况getrusage25. open的使用中常用的flag和mode参数int FILE_FLAG = O_WRONLY|O_APPEND|O_CREAT; int FILE_MODE = S_IRUSR|S_IWUSR|S_IRGRP|S_IROTH; 26. makefile中常用的符号:预定义变量 含义$* 不包含扩展名的目标文件名称。$ 目标的完整名称$% 如果目标是归档成员,则该变量表示目标的归档成员名称。例如,如果目标名称为 mytarget.so(image.o),则 $ 为 mytarget.so,而 $% 为 image.o。$+ 所有的依赖文件,以空格分开,并以出现的先后为序,可能包含重复的依赖文件。$< 第一个依赖文件的名称。$? 所有的依赖文件,以空格分开,这些依赖文件的修改日期比目标的创建日期晚$ 所有的依赖文件,以空格分开,不包含重复的依赖文件。AR 归档维护程序的名称,默认值为 ar。ARFLAGS 归档维护程序的选项。AS 汇编程序的名称,默认值为 as。ASFLAGS 汇编程序的选项。CC C 编译器的名称,默认值为 cc。CCFLAGS C 编译器的选项。CPP C 预编译器的名称,默认值为 $(CC) -E。CPPFLAGS C 预编译的选项。CXX C+ 编译器的名称,默认值为 g+。CXXFLAGS C+ 编译器的选项。FC FORTRAN 编译器的名称,默认值为 f77。FFLAGS FORTRAN 编译器的选项。用变量object表示所有的.o文件:objects := $(wildcard *.o)make -n或者-just-print表示只是显示命令,但不会执行命令make -s或者-slient表示全面禁止命令的显示make -i或者-ignore-errors表示Makefile中所有命令都会忽略错误make -k或者-keep-going表示如果某规则中的命令出错了,那么就终止该规则的执行,但继续执行其它规则在makefile中直接利用shell获取变量PLAT使用make中的一种用变量来定义变量的方法。这种方法使用的是“:=”操作符PLAT := $(shell uname -a)我们要定义一个变量,其值是一个空格,那么我们可以这样来:nullstring :=space := $(nullstring) # end of the lineFOO ?= bar含义是:如果FOO没有被定义过,那么变量FOO的值就是“bar”,如果FOO先前被定义过,那么这条语将什么也不做,其等价于:ifeq ($(origin FOO), undefined)FOO = barendiffoo := a.o b.o c.obar := $(foo:.o=.c)我们先定义了一个“$(foo)”变量,而第二行的意思是把“$(foo)”中所有以“.o”字串“结尾”全部替换成“.c”,所以我们的“$(bar)”的值就是“a.c b.c c.c”。你想在Makefile中设置参数值,你可以使用“override”指示符。其语法是:override <variable> = <value>override <variable> := <value>当然,你还可以追加:override <variable> += <more text>make运行时的系统环境变量可以在make开始运行时被载入到Makefile文件中,但是如果Makefile中已定义了这个变量,或是这个变量由make命令行带入,那么系统的环境变量的值将被覆盖。如果make指定了“-e”参数,那么,系统环境变量将覆盖Makefile中定义的变量

    注意事项

    本文(linux的c编程技巧.doc)为本站会员(laozhun)主动上传,三一办公仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一办公(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开