apue chapter [5-6]

capter 5  standard IO

1. 为了了解你所使用的系统中标准I / O库的实现,最好从头文件< s t d i o . h >开始。从中可以看到:F I L E对象是如何定义的,每个流标志的定义,定义为宏的各个标准I / O例程(例如g e t c)

2. 该系统的默认是:当标准输入、输出连至终端时,它们是行缓存的。行缓存的长度是1 2 8字节。注意,这并没有将输入、输出的行长限制1 2 8字节,这只是缓存的长度。如果要将5 1 2字节的行写到标准输出则要进行四次w r i t e系统调用。当将这两个流重新定向到普通文件时,它们就变成是全缓存的;

3. 程序中用到的临时问题一般的处理方法是:先打开临时文件,然后ulink,这样在程序退出的时候会自动删除打开的文件;

4. 关于临时文件,及临时文件前缀问题详细查看apue capter 5 last section


capter 6 system data files and informations

1.  从/etc/passwd中得到用户的基本信息

getpwnam getpwuid直接得到用户信息struct passwd<pwd.h>

 

struct passwd {
               char   *pw_name;       /* username */
               char   *pw_passwd;     /* user password */
               uid_t   pw_uid;        /* user ID */
               gid_t   pw_gid;        /* group ID */
               char   *pw_gecos;      /* real name */
               char   *pw_dir;        /* home directory */
               char   *pw_shell;      /* shell program */
           };

另外方法取得所有用户的信息

setpwent();

struct passwd * = getpwent();

endpwent();


2. 取用户组数据和取用户名相似

           struct group {
               char   *gr_name;       /* group name */
               char   *gr_passwd;     /* group password */
               gid_t   gr_gid;        /* group ID */
               char  **gr_mem;        /* group members */
           };

3. 使用添加组I D的优点是不必再显式地经常更改组。一个用户常常会参加多个项目,因此也就要同时属于多个组;

我们不仅可以属于口令记录中组I D所对应的组,也可属于多至1 6个另外的组。文件存取许可权检查相应被修改为:

不仅将进程的有效组I D与文件的组I D进行比较。


4. /var/run/utmp 当前系统登录对象  /var/log/wtmp 用户登录登出 (login logout)记录

5. 各种时间:

1》time_t time()直接得到格国际标准时间;

           struct tm {
               int tm_sec;         /* seconds */
               int tm_min;         /* minutes */
               int tm_hour;        /* hours */
               int tm_mday;        /* day of the month */
               int tm_mon;         /* month */
               int tm_year;        /* year */
               int tm_wday;        /* day of the week */
               int tm_yday;        /* day in the year */
               int tm_isdst;       /* daylight saving time */
           };

2》localtime得到如上数据结构的时间: 秒可以[0-61]闰秒; 除了月日字段,其他字段的值都以0开始

3》localtime和gmtime之间的区别是:localtime将日历时间变换成本地时间(考虑到本地时区和夏时制标志),

gmtime则将日历时间变换成国际标准时间的年、月、日、时、分、秒、周日

4》ctime直接从time_t得到可以显示的asc字符串

基于STM32F407,使用DFS算法实现最短迷宫路径检索,分为三种模式:1.DEBUG模式,2. 训练模式,3. 主程序模式 ,DEBUG模式主要分析bug,测量必要数据,训练模式用于DFS算法训练最短路径,并将最短路径以链表形式存储Flash, 主程序模式从Flash中….zip项目工程资源经过严格测试可直接运行成功且功能正常的情况才上传,可轻松复刻,拿到资料包后可轻松复现出一样的项目,本人系统开发经验充足(全领域),有任何使用问题欢迎随时与我联系,我会及时为您解惑,提供帮助。 【资源内容】:包含完整源码+工程文件+说明(如有)等。答辩评审平均分达到96分,放心下载使用!可轻松复现,设计报告也可借鉴此项目,该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的。 【提供帮助】:有任何使用问题欢迎随时与我联系,我会及时解答解惑,提供帮助 【附带帮助】:若还需要相关开发工具、学习资料等,我会提供帮助,提供资料,鼓励学习进步 【项目价值】:可用在相关项目设计中,皆可应用在项目、毕业设计、课程设计、期末/期中/大作业、工程实训、大创等学科竞赛比赛、初期项目立项、学习/练手等方面,可借鉴此优质项目实现复刻,设计报告也可借鉴此项目,也可基于此项目来扩展开发出更多功能 下载后请首先打开README文件(如有),项目工程可直接复现复刻,如果基础还行,也可在此程序基础上进行修改,以实现其它功能。供开源学习/技术交流/学习参考,勿用于商业用途。质量优质,放心下载使用。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值