⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 popt-man.ps

📁 linux 命令行处理popt模块说明文档
💻 PS
📖 第 1 页 / 共 4 页
字号:
(gv)-.37 E F2 2.5(,i).32 G(nt *)-2.5 E F3(ar)2.83 E(gcPtr)-.37 E F2(,).73 E(const char ***)168 573.6 Q F3(ar)2.83 E(gvPtr)-.37 E F2(\);).73 E(int poptStuffAr)108 597.6 Q(gs\(poptContext)-.1 E F3(con)2.7 E F2 2.5(,c).24 G(onst char **)-2.5 E F3(ar)2.83 E(gv)-.37 E F2(\);).32 E F0(DESCRIPTION)72 626.4 Q F1 .196(The popt library e)108 638.4 R .196(xis\ts essentially for parsing command-line options. It is found superior i\n man)-.15 F 2.695(yw)-.15 G(ays)-2.795 E 3.165(when compared to parsing the ar)108 650.4 R 3.165(gv array by hand or using the getopt functions)-.18 F F2(getopt\(\))5.665 E F1(and)5.665 E F2(getopt_long\(\))108 662.4 Q F1([see)3.712 E F2(getopt)3.711 E F1 3.711(\(3\)]. Some)B 1.211(speci\214c adv)3.711 F1.211(antages of popt are: it does not utilize global v)-.25 F(ari-)-.25E .725(ables, thus enabling multiple passes in parsing)108 674.4 R F3(ar)3.555 E(gv)-.37 E F1 3.226(;i)3.226 G 3.226(tc)-3.226 G .726(an parse an arbitrary array of)-3.226 F F3(ar)3.556 E(gv)-.37 E F1 .726(-style ele-).32 F 1.307(ments, allo)108 686.4 R 1.307(wing parsing of command-line-strings from an)-.25 F 3.807(ys)-.15 G1.306(ource; it pro)-3.807 F 1.306(vides a standard method of)-.15 F.495(option aliasing \(to be discussed at length belo)108 698.4 R -.65(w.)-.25 G .496(\); it can e).65 F -.15(xe)-.15 G 2.996(ce).15 G .496(xternal option \214lters; and, \214nally)-3.146 F 2.996(,i)-.65 G 2.996(tc)-2.996 G(an)-2.996 E(automatically generate help and usage messages for the application.)108710.4 Q(Lik)108 734.4 Q(e)-.1 E F2(getopt_long\(\))3.156 E F1 3.156(,t)C.656(he popt library supports short and long style options.)-3.156 F.655(Recall that a)5.655 F F2 .655(short option)3.155 F F1 .124(consists of a - character follo)108 746.4 R .124(wed by a single alphanumeric character)-.25 F 5.124(.A)-.55 G F2 .124(long option)-2.5 F F1 2.624(,c)C .124(ommon in GNU)-2.624 F 1.244(utilities, consists of tw)108 758.4 R 3.744(o-c)-.1 G 1.244(haracters follo)-3.744 F 1.243(wed by a string made up of letters, numbers and h)-.25 F(yphens.)-.05 E2.786(Long options are optionally allo)108 770.4 R 2.786(wed to be)-.25F 2.786(gin with a single -, primarily to allo)-.15 F 5.287(wc)-.25 G(ommand-line)-5.287 E(June 30, 1998)269.723 817.889 Q(1)192.722 E 0 CgEP%%Page: 2 2%%BeginPageSetupBP%%EndPageSetup/F0 10/Times-Roman@0 SF 128.978(POPT\(3\) Linux)72 48 R(Programmer')2.5E 2.5(sM)-.55 G 128.977(anual POPT\(3\))-2.5 F .696(compatibility between popt applications and X toolkit applications.)10884 R .696(Either type of option may be fol-)5.696 F(lo)108 96 Q .149(wed by an ar)-.25 F 2.649(gument. A)-.18 F .149(space separates a short option from its ar)2.649 F .15(guments; either a space or an = sep-)-.18 F(arates a long option from an ar)108 108 Q(gument.)-.18 E .352(The popt library is highly portable and should w)108 132 R .352(ork on an)-.1 F 2.852(yP)-.15 G .352(OSIX platform.)-2.852 F .352(The latest v)5.352 F .352(ersion is dis-)-.15 F(trib)108 144 Q(uted with rpm and is al)-.2 E -.1(wa)-.1 G(ys a).1 E -.25(va)-.2 G(ilable from: ftp://ftp.rpm.or).25 E(g/pub/rpm/dist.)-.18 E .129(It may be redistrib)108 168 R .129(uted under the X consortium license\, see the \214le COPYING in the popt source distri-)-.2 F -.2(bu)108 180S(tion for details.).2 E/F1 10.95/Times-Bold@0 SF -.329(BA)72 196.8 S(SIC POPT USA).329 E(GE)-.602 E/F2 10/Times-Bold@0 SF(1. THE OPTION T)87208.8 Q(ABLE)-.9 E F0 .495(Applications pro)108 220.8 R .495(vide popt \with information on their command-line options by means of an "option t\a-)-.15 F(ble," i.e., an array of)108 232.8 Q F2(struct poptOption)2.5 EF0(structures:)2.5 E(#include <popt.h>)108 256.8 Q(struct poptOption {)108 280.8 Q(const char * longName; /* may be NULL */)118 292.8 Q(char shortName;)118 304.8 Q(/* may be '\\0' */)20 E(int ar)118 316.8 Q(gInfo;)-.18 E -.2(vo)118 328.8 S(id * ar).2 E 27.5(g; /*)-.18 F(depends on ar)2.5 E(gInfo */)-.18 E(int v)118 340.8 Q 35(al; /*)-.25 F2.5(0m)2.5 G(eans don')-2.5 E 2.5(tr)-.18 G(eturn, just update \215ag */)-2.5 E(char * descrip;)118 352.8 Q(/* description for autohelp -- may be NULL */)20 E(char * ar)118 364.8Q 10(gDescrip; /*)-.18 F(ar)2.5 E(gument description for autohelp */)-.18 E(};)108 376.8 Q .697(Each member of the table de\214nes a single \option that may be passed to the program.)108 400.8 R .698(Long and short)5.698 F .726(options are considered a single option that may occur in tw)108 412.8 R3.226(od)-.1 G(if)-3.226 E .726(ferent forms.)-.25 F .726(The \214rst tw)5.726 F 3.225(om)-.1 G(embers,)-3.225 E/F3 10/Times-Italic@0 SF(longName)108 424.8 Q F0(and)3.053 E F3(shortName)3.214 E F0 2.874(,d).18 G .374(e\214ne the names of the option; the \\214rst is a long name, while the latter is a)-2.874 F(single character)108 436.8 Q(.)-.55 E(The)108 460.8 Q F3(ar)3.297 E(gInfo)-.37 E F0 .796(member tells popt what type of ar)3.477 F .796(gument is e)-.18 F .796(xpected after the ar)-.15 F 3.296(gument. If)-.18 F .796(no option is)3.296 F -.15(ex)108 472.8 S(pected,).15 E F2(POPT_ARG_NONE)2.524 E F0.024(should be used.)2.524 F .024(The rest of the v)5.024 F .024(alid v)-.25 F .025(alues are sho)-.25 F .025(wn in the follo)-.25 F(wing)-.25 E(table:)108 484.8 Q F2 -.92(Va)108 508.8 S 89.54(lue Description).92 F(ar)102.47 E 2.5(gT)-.1 G(ype)-3.24 E(POPT_ARG_NONE)108 520.8 Q F0(No ar)28.34 E(gument e)-.18 E 59.21(xpected int)-.15 F F2(POPT_ARG_STRING)108 532.8 Q F0(No type checking to be performed)18.89 E(char *)15 E F2(POPT_ARG_INT)108 544.8 Q F0(An inte)39.45 E(ger ar)-.15E(gument is e)-.18 E 19.92(xpected int)-.15 F F2(POPT_ARG_LONG)108 556.8Q F0 2.5(Al)27.78 G(ong inte)-2.5 E(ger is e)-.15 E 44.73(xpected long)-.15 F F2(POPT_ARG_V)108 568.8 Q(AL)-1.35 E F0(Inte)37.47 E(ger v)-.15 E(alue tak)-.25 E(en from)-.1 E/F4 10/Courier@0 SF(val)2.5 E F0(int)33.33E F2(POPT_ARG_FLO)108 580.8 Q -.95(AT)-.4 G F0(An \215oat ar)25.08 E(gument is e)-.18 E 29.76(xpected \215oat)-.15 F F2(POPT_ARG_DOUBLE)108592.8 Q F0 2.5(Ad)15 G(ouble ar)-2.5 E(gument is e)-.18 E 25.32(xpected double)-.15 F -.15(Fo)108 616.8 S 5.824(rn).15 G 3.324(umeric v)-5.824 F 3.324(alues, if the)-.25 F F3(ar)5.824 E(gInfo)-.37 EF0 -.25(va)5.824 G 3.323(lue is bitwise or').25 F 5.823(dw)-.5 G 3.323(ith one of)-5.823 F F2(POPT_ARGFLA)5.823 E(G_OR)-.55 E F0(,)A F2(POPT_ARGFLA)108 628.8 Q(G_AND)-.55 E F0 4.228(,o)C(r)-4.228 E F2(POPT_ARGFLA)4.228 E(G_XOR)-.55 E F0 4.228(,t)C 1.728(he v)-4.228 F1.728(alue is sa)-.25 F -.15(ve)-.2 G 4.229(db).15 G 4.229(yp)-4.229 G1.729(erforming an OR,)-4.229 F .749(AND, or XOR.)108 640.8 R .749(If the)5.749 F F3(ar)3.249 E(gInfo)-.37 E F0 -.25(va)3.249 G .749(lue is bitwise or').25 F 3.249(dw)-.5 G(ith)-3.249 E F2(POPT_ARGFLA)3.249 E(G_NO)-.55 E(T)-.4 E F0 3.249(,t)C .749(he v)-3.249 F .749(alue will be)-.25 F(ne)108 652.8 Q -.05(ga)-.15 G 1.274(ted before sa).05 F 1.274(ving. F)-.2 F 1.275(or the common operations of setting and/or clearing bits,)-.15 F F2(POPT_BIT_SET)3.775 E F0(and)108 664.8 Q F2(POPT_BIT_CLR)2.5 E F0(ha)2.5E .3 -.15(ve t)-.2 H(he appropriate \215ags set to perform bit operations.).15 E .876(If the)108 688.8 R F3(ar)3.376 E(gInfo)-.37 E F0 -.25(va)3.376 G .876(lue is bitwise or').25 F 3.376(dw)-.5 G(ith)-3.376 E F2(POPT_ARGFLA)3.376 E(G_ONED)-.55 E(ASH)-.35 E F0 3.376(,t)C .876(he long ar)-3.376 F.875(gument may be)-.18 F(gi)108 700.8 Q -.15(ve)-.25 G 9.035(nw).15 G6.535(ith a single - instead of tw)-9.035 F 6.536(o. F)-.1 F 6.536(or e)-.15 F 6.536(xample, if)-.15 F F2(--longopt)9.036 E F0 6.536(is an option with)9.036 F F2(POPT_ARGFLA)108 712.8 Q(G_ONED)-.55 E(ASH)-.35 E F0 2.5(,i)C 2.5(ss)-2.5 G(peci\214ed,)-2.5 E F2(-longopt)2.5 E F0(is accepted as well.)2.5 E .349(The ne)108 736.8 R .349(xt element,)-.15 F F3(ar)3.179 E(g)-.37 E F0 2.849(,a).22 G(llo)-2.849 E .349(ws popt to automatically update program v)-.25 F .349(ariables when the option is used.)-.25 F(If)108 748.8 Q F3(ar)3.322 E(g)-.37 E F0(is)3.212 E F2(NULL)2.993 E F0 2.993(,i)C 2.993(ti)-2.993 G2.993(si)-2.993 G .493(gnored and popt tak)-2.993 F .493(es no special action.)-.1 F .493(Otherwise it should point to a v)5.493F(ariable)-.25 E(of the type indicated in the right-most column of the table abo)108760.8 Q -.15(ve)-.15 G(.).15 E 192.723(2J)72 817.889 S(une 30, 1998)-192.723 E 0 Cg EP%%Page: 3 3%%BeginPageSetupBP%%EndPageSetup/F0 10/Times-Roman@0 SF 128.978(POPT\(3\) Linux)72 48 R(Programmer')2.5E 2.5(sM)-.55 G 128.977(anual POPT\(3\))-2.5 F .348(If the option tak)108 84 R .348(es no ar)-.1 F .348(gument \()-.18 F/F1 10/Times-Italic@0SF(ar).33 E(gInfo)-.37 E F0(is)3.028 E/F2 10/Times-Bold@0 SF(POPT_ARG_NONE)2.848 E F0 .348(\), the v)B .348(ariable pointed to by)-.25 F F1(ar)2.847 E(g)-.37 E F0 .347(is set)3.067 F .946(to 1 when the option is used.)108 96 R(\(Incidentally)5.946 E 3.447(,i)-.65 G 3.447(tw)-3.447 G .947(ill perhaps not escape the attention of hunt-and-peck)-3.447 F .711(typists that the v)108 108 R .711(alue of)-.25 F F2(POPT_ARG_NONE)3.211E F0 .711(is 0.\))3.211 F .711(If the option does tak)5.711 F 3.211(ea)-.1 G 3.211(na)-3.211 G -.18(rg)-3.211 G .711(ument, the v).18 F(ariable)-.25 E(that)108 120 Q F1(ar)5.062 E(g)-.37 E F0 2.562(points to is updated to re\215ect the v)5.282 F 2.562(alue of the ar)-.25 F 5.062(gument. An)-.18 F 5.062(ys)-.15 G 2.562(tring is acceptable for)-5.062 F F2(POPT_ARG_STRING)108 132 Q F0(ar)22.869 E 20.369(guments, b)-.18 F(ut)-.2 E F2(POPT_ARG_INT)22.869 E F0(,)A F2(POPT_ARG_LONG)22.868 E F0(,)A F2(POPT_ARG_FLO)108 144 Q -.95(AT)-.4 G F0 4.499(,a).95 G(nd)-4.499 E F2(POPT_ARG_DOUBLE)4.499 E F0 1.999(are con)4.499 F -.15(ve)-.4 G 2(rted to the appropriate type, and an).15 F(error returned if the con)108 156 Q -.15(ve)-.4 G(rsion f).15 E(ails.)-.1 E F2(POPT_ARG_V)108 180 Q(AL)-1.35 E F0(causes)2.835 E F1(ar)2.835 E(g)-.37 E F0 .335(to be set to the \(inte)2.835 F .334(ger\) v)-.15 F .334(alue of)-.25 F F1(val)2.834 E F0 .334(when the ar)2.834 F.334(gument is found.)-.18 F(This)5.334 E 1.42(is most often useful for mutually-e)108 192 R(xclusi)-.15 E 1.72 -.15(ve a)-.25 H -.18(rg).15 G 1.42(uments in cases where it is not an error for multiple).18 F(ar)108 204Q 1.227(guments to occur and where you w)-.18 F 1.227(ant the last ar)-.1 F 1.227(gument speci\214ed to win; for e)-.18 F 1.226(xample, "rm -i -f".)-.15 F F2(POPT_ARG_V)108 216 Q(AL)-1.35 E F0 .328(causes the parsing function not to return a v)2.828 F .329(alue, since the v)-.25 F .329(alue of)-.25 F F1(val)2.829 E F0 .329(has already)2.829 F(been used.)108 228 Q 1.078(If the)108 252 R F1(ar)3.578 E(gInfo)-.37 E F0 -.25(va)3.578 G 1.077(lue is bitwise or').25 F3.577(dw)-.5 G(ith)-3.577 E F2(POPT_ARGFLA)3.577 E(G_OPTION)-.55 E(AL)-.2 E F0 3.577(,t)C 1.077(he ar)-3.577 F 1.077(gument to the long)-.18 F.06(option may be omitted. If the long option is used without an ar)108264 R .06(gument, a def)-.18 F .06(ault v)-.1 F .06(alue of zero or NULL)-.25 F .692(will be sa)108 276 R -.15(ve)-.2 G3.192(d\().15 G .692(if the ar)-3.192 F 3.192(gp)-.18 G .691(ointer is present\), otherwise beha)-3.192 F .691(vior will be identical to a long option with)-.2 F(ar)108 288 Q(gument.)-.18 E .22(The ne)108 312 R .22(xt option,)-.15 F F1(val)3.01 EF0 2.72(,i).51 G 2.72(st)-2.72 G .22(he v)-2.72 F .22(alue popt')-.25 F2.72(sp)-.55 G .221(arsing function should return when the option is encountered.)-2.72 F.185(If it is 0, the parsing function does not return a v)108 324 R .184(alue, instead parsing the ne)-.25 F .184(xt command-line ar)-.15 F(gument.)-.18 E .428(The last tw)108 348 R 2.928(oo)-.1 G(ptions,)-2.928E F1(descrip)3.278 E F0(and)3.118 E F1(ar)3.258 E(gDescrip)-.37 E F0.429(are only required if automatic help messages are desired)3.118 F.936(\(automatic usage messages can be generated without them\).)108 360R F1(descrip)3.786 E F0 .936(is a te)3.626 F .935(xt description of the ar)-.15 F(gu-)-.18 E .722(ment and)108 372 R F1(ar)3.552 E(gdescrip)-.37 E F0 .722(is a short summary of the type of ar)3.412 F .723(guments the option e)-.18 F .723(xpects, or NULL if the)-.15 F(option doesn')108 384 Q 2.5(tr)-.18 G(equire an)-2.5 E 2.5(ya)-.15 G -.18(rg)-2.5 G(uments.).18 E.011(If popt should automatically pro)108 408 R(vide)-.15 E F2(--usage)2.511 E F0(and)2.511 E F2(--help)2.511 E F0(\()2.511 E F2(-?)A F0 5.011(\)o)C .011(ptions, one line in the table should be the)-5.011 F(macro)108 420 Q F2(POPT_A)16.441 E(UT)-.5 E(OHELP)-.18 E F0 18.942(.T)C 13.942(his macro includes another option table \(via)-18.942 F F2(POPT_ARG_INCLUDE_T)108 432 Q(ABLE;)-.9 E F0 1.292(see belo)3.793 F1.292(w\) in the main one which pro)-.25 F 1.292(vides the table entries for)-.15 F 1.068(these ar)108 444 R 1.069(guments. When)-.18 F F2(--usage)3.569 E F0(or)3.569 E F2(--help)3.569 EF0 1.069(are passed to programs which use popt')3.569 F 3.569(sa)-.55 G1.069(utomatical help,)-3.569 F 1.04(popt displays the appropriate mess\age on stderr as soon as it \214nds the option, and e)108 456 R 1.04(xits the program)-.15 F .017(with a return code of 0. If you w)108 468R .017(ant to use popt')-.1 F 2.517(sa)-.55 G .017(utomatic help generation in a dif)-2.517 F .018(ferent w)-.25 F(ay)-.1E 2.518(,y)-.65 G .018(ou need)-2.518 F 1.827(to e)108 480 R 1.826(xpli\citly add the option entries to your programs option table instead of u\sing)-.15 F F2(POPT_A)4.326 E(UT)-.5 E(O-)-.18 E(HELP)108 492 Q F0(.)A.988(If the)108 516 R F1(ar)3.488 E(gInfo)-.37 E F0 -.25(va)3.488 G .989(lue is bitwise or').25 F 3.489(dw)-.5 G(ith)-3.489 E F2(POPT_ARGFLA)3.489 E(G_DOC_HIDDEN)-.55 E F0 3.489(,t)C .989(he ar)-3.489 F .989(gument will not)-.18 F(be sho)108 528 Q(wn in help output.)-.25 E 1.137(If the)108 552 R F1(ar)3.637 E(gInfo)-.37 E F0 -.25(va)3.637 G 1.136(lue is bitwise or').25 F 3.636(dw)-.5 G(ith)-3.636 E F2(POPT_ARGFLA)3.636 E(G_SHO)-.55 E(W_DEF)-.5 E -.5(AU)-.9 G -.92(LT).5 G F0 3.636(,t).92 G 1.136(he inital v)-3.636 F 1.136(alue of)-.25 F(the ar)108 564 Q2.5(gw)-.18 G(ill be sho)-2.5 E(wn in help output.)-.25 E .977(The \214nal structure in the table should ha)108 588 R 1.277 -.15(ve a)-.2 H .977(ll the pointer v).15 F .977(alues set to)-.25 F F2(NULL)3.477E F0 .977(and all the arithmetic)3.477 F -.25(va)108 600 S(lues set to 0, marking the end of the table. The macro).25 E F2(POPT_T)2.5 E(ABLEEND)-.9 E F0(is pro)2.5 E(vided to do that.)-.15 E .223(There are tw)108 624 R 2.722(ot)-.1 G .222(ypes of option table entrie\s which do not specify command line options. When either of)-2.722 F1.393(these types of entries are used, the)108 636 R F1(longName)3.893 EF0 1.393(element must be)3.893 F F2(NULL)3.893 E F0 1.393(and the)3.893F F2(shortName)3.893 E F0(element)3.893 E(must be)108 648 Q F2('\\0')2.5E F0(.)A .802(The \214rst of these special entry types allo)108 672 R.802(ws the application to nest another option table in the current)-.25F .359(one; such nesting may e)108 684 R .36(xtend quite deeply \(the actual depth is limited by the program')-.15 F2.86(ss)-.55 G .36(tack\). Includ-)-2.86 F .247(ing other option tables allo)108 696 R .246(ws a library to pro)-.25 F.246(vide a standard set of command-line options to e)-.15 F -.15(ve)-.25 G .246(ry pro-).15 F .531(gram which uses it \(this is often done \in graphical programming toolkits, for e)108 708 R .532(xample\). T)-.15F 3.032(od)-.8 G 3.032(ot)-3.032 G .532(his, set)-3.032 F(the)108 720 QF1(ar)3.263 E(gInfo)-.37 E F0 .763(\214eld to)3.263 F F2(POPT_ARG_INCLUDE_T)3.263 E(ABLE)-.9 E F0 .763(and the ar)3.263 F 3.263<678c>-.18 G .763(eld to point to the table which is)-3.263 F 1.06(being included. If automatic help generation is being used, the)108 732R F1(descrip)3.56 E F0 1.061(\214eld should contain a o)3.561 F -.15(ve)-.15 G(rall).15 E(description of the option table being included.)108744 Q .86(The other special option table entry type tells popt to call \a function \(a callback\) when an)108 768 R 3.36(yo)-.15 G .86(ption in)-3.36 F 2.242(that table is found. This is especially usefull when incl\uded option tables are being used, as the)108 780 R(June 30, 1998)269.723 817.889 Q(3)192.722 E 0 Cg EP%%Page: 4 4%%BeginPageSetupBP%%EndPageSetup/F0 10/Times-Roman@0 SF 128.978(POPT\(3\) Linux)72 48 R(Programmer')2.5E 2.5(sM)-.55 G 128.977(anual POPT\(3\))-2.5 F .396(program which pro)108 84 R .396(vides the top-le)-.15 F -.15(ve)-.25 G 2.896(lo).15 G .395(ption table doesn')-2.896 F 2.895(tn)-.18 G .395(eed to be a)-2.895 F-.1(wa)-.15 G .395(re of the other options which).1 F .113(are pro)10896 R .113(vided by the included table. When a callback is set for a tab\le, the parsing function ne)-.15 F -.15(ve)-.25 G 2.614(rr).15 G(eturns)-2.614 E .367(information on an option in the table. Instead, options i\nformation must be retained via the callback or)108 108 R .224(by ha)108120 R .224(ving popt set a v)-.2 F .225(ariable through the option')-.25F(s)-.55 E/F1 10/Times-Italic@0 SF(ar)2.725 E(g)-.37 E F0 2.725(\214eld. Option)2.725 F .225(callbacks should match the follo)2.725 F(w-)-.25 E(ing prototype:)108 132 Q/F2 10/Times-Bold@0 SF -.1(vo)108 156S(id poptCallbackT).1 E(ype\(poptContext con,)-.74 E(const struct poptOption * opt,)163 168 Q(const char * ar)163 180 Q(g, v)-.1 E(oid * data\);)-.1 E F0 .807(The \214rst parameter is the conte)108 204 R .806(xt which is being parsed \(see the ne)-.15 F .806(xt section for information on con-)-.15 F(te)108 216 Q(xts\),)-.15 E F1(opt)3.326 E F0 .827(points to the option which triggered this callback, and)3.326 F F1(ar)

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -