我想看看getopts如何工作。我寫了下面的代碼,但不知道我做錯了什麼。請指點我:getopt給-1作爲返回值
#include<unistd.h>
..
..
int main(int argc, char *argv[])
{
int ch=0;
while((ch=getopt(argc, argv, "ltR:")!=-1) // 0 here was by mistake. Changed to -1
{
printf("%d",ch); //This prints -1
switch(ch)
{
case 'l':
printf("l");
break;
case 't':
printf("t");
break;
case 'R':
printf("R");
break;
}
}
return 0;
}
$ ./a.out -ltR
$ -1
$ ./a.out -l
$ -1
可能是我在做一個真正的錯誤或錯過了我對getopt的理解的某些方面。
做出改變,但仍然給出了同樣的結果:(
感謝, Faizan
該代碼在while循環的括號中也有問題。你能否粘貼你的實際代碼,因爲a)不能編譯,b)可能會給你的實際問題提供線索。 –
哦..那是在一個不同的機器上,我沒有互聯網接入..多數民衆贊成爲什麼必須鍵入..比較兩者,但不會注意到任何差異在while循環..再次檢查 –