getopt_long()的函数说明

getopt_long()的函数说明,第1张

getopt被用来解析命令行选项参数

getopt_long支持长选项的命令行解析,使用man getopt_long,得到其声明如下:

int getopt_long(int argc, char const argv[],const char optstring, const struct option longopts,int longindex);

函数中的argc和argv通常直接从main()的两个参数传递而来。optsting是选项参数组成的字符串:

字符串optstring可以下列元素:

1单个字符,表示选项,

2单个字符后接一个冒号:表示该选项后必须跟一个参数。参数紧跟在选项后或者以空格隔开。该参数的指针赋给optarg。

3 单个字符后跟两个冒号,表示该选项后可以有参数也可以没有参数。如果有参数,参数必须紧跟在选项后不能以空格隔开。该参数的指针赋给optarg。(这个特性是GNU的扩张)。

optstring是一个字符串,表示可以接受的参数。例如,a:b:cd,表示可以接受的参数是a,b,c,d,其中,a和b参数后面跟有更多的参数值。(例如:-a host -b name)

参数longopts,其实是一个结构的实例:

struct option {

const char name; //name表示的是长参数名

int has_arg; //has_arg有3个值,no_argument(或者是0),表示该参数后面不跟参数值

// required_argument(或者是1),表示该参数后面一定要跟个参数值

// optional_argument(或者是2),表示该参数后面可以跟,也可以不跟参数值

int flag;

//用来决定,getopt_long()的返回值到底是什么。如果flag是null(通常情况),则函数会返回与该项option匹配的val值;如果flag不是NULL,则将val值赋予flag所指向的内存,并且返回值设置为0。

int val; //和flag联合决定返回值

}

参数longindex,表示当前长参数在longopts中的索引值。

给个例子:

struct option long_options[] = {

{a123, required_argument, 0, 'a'},

{c123, no_argument, 0, 'c'},

}

现在,如果命令行的参数是-a 123,那么调用getopt_long()将返回字符'a',并且将字符串123由optarg返回(注意注意!字符串123由optarg带回!optarg不需要定义,在getopth中已经有定义),那么,如果命令行参数是-c,那么调用getopt_long()将返回字符'c',而此时,optarg是null。最后,当getopt_long()将命令行所有参数全部解析完成后,返回-1。

解决方法是从http://directoryfsforg/选择Software Development,然后选择GNU C的标准库,找到getopt源码,然后放到VC里编译一下,真的没别的办法

$(function(){})函数当 DOM(文档对象模型) 已经加载,并且页面(包括图像)已经完全呈现时,执行。

此事件等同于jquery的ready()事件的一种语法,完整的三种如下:

$(document)ready(function)

$()ready(function)

$(function)

简单地说,这个方法纯粹是对向windowload事件注册事件的替代方法。通过使用这个方法,可以在DOM载入就绪能够读取并 *** 纵时立即调用你所绑定的函数,而9999%的JavaScript函数都需要在那一刻执行。

$(function () {var opName = getUrlParam('opname');// var opName = "OP3040";documentgetElementById("txtName")value = opName;getplan(opName);getopname(opName);// getplan(opName);connect();getFoucs();InitGrid();});

F5的时候,页面刷新,重新读取DOM节点完成后,自动执行ready()函数里面的函数体。

$('ID')只是选中某个元素,比如你的函数第三行:  documentgetElementById("txtName")。并没有执行函数的含义。

扩展资料

jQuery的模块可以分为3部分:入口模块、底层支持模块和功能模块。

在构造jQuery对象模块中,如果在调用构造函数jQuery()创建jQuery对象时传入了选择器表达式,则会调用选择器Sizzle(一款纯JavaScript实现的CSS选择器引擎,用于查找与选择器表达式匹配的元素集合)遍历文档,查找与之匹配的DOM元素,并创建一个包含了这些DOM元素引用的jQuery对象。

浏览器功能测试模块提供了针对不同浏览器功能和bug的测试结果,其他模块则基于这些测试结果来解决浏览器之间的兼容性问题。

在底层支持模块中,回调函数列表模块用于增强对回调函数的管理,支持添加、移除、触发、锁定、禁用回调函数等功能;异步队列模块用于解耦异步任务和回调函数,它在回调函数列表的基础上为回调函数增加了状态,并提供了多个回调函数列表,支持传播任意同步或异步回调函数的成功或失败状态。

数据缓存模块用于为DOM元素和Javascript对象附加任意类型的数据;队列模块用于管理一组函数,支持函数的入队和出队 *** 作,并确保函数按顺序执行,它基于数据缓存模块实现。

在功能模块中,事件系统提供了统一的事件绑定、响应、手动触发和移除机制,它并没有将事件直接绑定到DOM元素上,而是基于数据缓存模块来管理事件。

Ajax模块允许从服务器上加载数据,而不用刷新页面,它基于异步队列模块来管理和触发回调函数;动画模块用于向网页中添加动画效果,它基于队列模块来管理和执行动画函数;

属性 *** 作模块用于对HTML属性和DOM属性进行读取、设置和移除 *** 作;DOM遍历模块用于在DoM树中遍历父元素、子元素和兄弟元素。

DOM *** 作模块用于插入、移除、复制和替换DOM元素;样式 *** 作模块用于获取计算样式或设置内联样式;坐标模块用于读取或设置DOM元素的文档坐标;尺寸模块用于获取DOM元素的高度和宽度。

jQuery是一个快速、简洁的JavaScript框架,是继Prototype之后又一个优秀的JavaScript代码库(或JavaScript框架)。jQuery设计的宗旨是“write Less,Do More”,即倡导写更少的代码,做更多的事情。

它封装JavaScript常用的功能代码,提供一种简便的JavaScript设计模式,优化HTML文档 *** 作、事件处理、动画设计和Ajax交互。

jQuery的核心特性可以总结为:具有独特的链式语法和短小清晰的多功能接口;具有高效灵活的css选择器,并且可对CSS选择器进行扩展;拥有便捷的插件扩展机制和丰富的插件。jQuery兼容各种主流浏览器,如IE 60+、FF 15+、Safari 20+、Opera 90+等。

技术应用

只需要少量的代码,即可将它们集成到网站上,并且能够帮助访问者分享网站上的内容。 [12] 

移动端

JQuery Mobile 1 2是JQuery运行在手机和平板设备上的版本。JQuery Mobile 1 2给主流移动平台提供了JQuery的核心库,发布了一个完整统一的JQuery移动UI设计框架,在不同的智能手机和桌面电脑的web浏览器上形成统一的用户UI。

支持全球主流的移动平台,对每个平台的支持分为三个等级:A、B、C,实现了对Android 21-23、32、40、4 1、Palm WebOS 14-20、30、Firefox Mobile 15,Opera Mobile 115-12等平台的A级支持。

JQuery Mobile 1 2的核心使得基本的HTML标签在所有的浏览器中生效,并且对网页的行为和效果均进行了增强,让网页在等级较高的浏览器中能获得优秀的体验,在较差的浏览器中也能正常的使用。

参考资料:

 jQuery的工作原理

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/langs/13493083.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2025-09-01
下一篇2025-09-01

发表评论

登录后才能评论

评论列表(0条)

    保存