网站大量收购独家精品文档,联系QQ:2885784924

实习报告6_ 12软工A2_20143430134_张云龙.docx

实习报告6_ 12软工A2_20143430134_张云龙.docx

  1. 1、本文档共10页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
实习报告:Linux 设备编程 学生姓名:张云龙 班级:12 软工A2 学号:20143430134 一、实习内容 1、Linux 扬声器设备编程# include fcntl.h # include stdio.h # include stdlib.h # include string.h # include unistd.h # include sys/ioctl.h # include sys/types.h # include linux/kd.h // 设定默认值 # define DEFAULT_FREQ 440 # define DEFAULT_LENGTH 200 # define DEFAULT_REPS 1 # define DEFAULT_DELAY 100 // 定义一个结构,存储所需的数据 typedef struct { int freq; int length; int reps; int delay; // 设定一个合适的频率 // 200 微秒,发声的长度以微秒为单位 // 默认不重复发声 // 同样以微秒为单位 // 期望输出的频率,单位为Hz // 发声长度,以微秒为单位 // 重复的次数 // 两次发声间隔,以微秒为单位 } beep_parms_t; // 打印帮助信息并退出 void usage_bail(const char *executable_name) { printf(Usage: \n \t%s [-f frequency] [-l length] [-r reps] [-d delay] \n ,executable_name) ; exit(1) ; } // 分析运行参数,各项意义如下: // -f 以 Hz 为单位的频率值 // -l 以毫秒为单位的发声时长 // -r 重复次数 // -d 以毫秒为单位的间歇时长 void parse_command_line(char **argv, beep_parms_t *result) { char *arg0 = *(argv++) ; while (*argv) { if (!strcmp(*argv, -f ) ) { // 频率 int freq = atoi(*( ++argv) ) ; if ( (freq = 0) || (freq 10000) ) { fprintf(stderr, Bad parameter: frequency must be from l..10000\n ) ; exit(1) ; } else { result - freq = freq; argv++; } } else if (!strcmp(*argv, -l) ) { // 发声的时间长度 int length = atoi( *(++argv) ) ; if (length 0) { fprintf(stderr, Bad parameter: length must be = 0\n ) ; exit(1) ; } else { result - length = length; argv++; } } else if (!strcmp(*argv, -r ) ) { // 重复次数 int reps = atoi( * (++argv) ) ; if (reps 0) { fprintf(stderr, Bad parameter:reps must be = 0\n ) ; exit(1) ; } else { } } else result - reps = reps; argv++; if (!strcmp(*argv, -d) ) { // 延时 int delay = atoi( * (++argv) ) ; if (delay 0) { fprintf(stderr, Bad parameter: delay must be = 0\n ) ; exit(1) ; } else { result - delay = delay; argv++; } } else { fprintf(stderr, Bad parameter:%s\n , *argv) ; usage_bail(arg0) ; } } } int main(int argc, char **argv) { int console_fd; int i; // 循环计数器 // 设发声参数为默认值 beep_parms_t parms={DEFAULT_FREQ, DEFAULT_LENGTH, DEFAULT_REPS, DEFAULT_DELAY} ; // 分析参数,可能的话更新发声参数 parse_command_

文档评论(0)

tianya189 + 关注
官方认证
内容提供者

该用户很懒,什么也没介绍

认证主体阳新县融易互联网技术工作室
IP属地湖北
统一社会信用代码/组织机构代码
92420222MA4ELHM75D

1亿VIP精品文档

相关文档