但是我在源程序中已经包括了"getopt.h"这个头文件,在主函数中也是这样调用的:
int opt= getopt(argc, argv, "vsM:m:d:");
这问题是出在哪儿呀,求救!!!!
13 个解决方案
#1
参数个数不对
#2
看看你的函数原型,肯定不是要求3个参数
#3
回去看看自己定义的原型
#4
错误问题就是
getopt : function does not take 3 parameters
函数getopt不接受3个参数,看看函数的声明吧
getopt : function does not take 3 parameters
函数getopt不接受3个参数,看看函数的声明吧
#5
头文件里也是带了三个参数:int getopt(int argc, char** argv, char* optstr);
#6
GETOPT是个posix函数,你的用法是对的,你加
#include<stdio.h>
#include<unistd.h>
试一下
MS已经不支持这个函数了
#include<stdio.h>
#include<unistd.h>
试一下
MS已经不支持这个函数了
#7
开来是调用了古董级别的库函数
#8
呵呵。。。。
down个就是了
down个就是了
#9
楼上的对,这个函数在linux/unix下可以用
#10
是楼上的楼上的楼上的
#11
http://switch.dl.sourceforge.net/sourceforge/freegetopt/freegetopt-0.11.tar.gz
#12
这个是通用版本,随便你什么
呵呵
呵呵
#13
int getopt(int argc, char** argv, char* optstr);
定义的是char*而非const char*;
因此不能直接赋const char*型数值"vsM:m:d:" 为第三个参数;
将 int opt= getopt(argc, argv, "vsM:m:d:");改成:
...
char tmp[]="vsM:m:d:";
int opt= getopt(argc, argv, tmp);
...
试试~ 应该可以了!
定义的是char*而非const char*;
因此不能直接赋const char*型数值"vsM:m:d:" 为第三个参数;
将 int opt= getopt(argc, argv, "vsM:m:d:");改成:
...
char tmp[]="vsM:m:d:";
int opt= getopt(argc, argv, tmp);
...
试试~ 应该可以了!
#1
参数个数不对
#2
看看你的函数原型,肯定不是要求3个参数
#3
回去看看自己定义的原型
#4
错误问题就是
getopt : function does not take 3 parameters
函数getopt不接受3个参数,看看函数的声明吧
getopt : function does not take 3 parameters
函数getopt不接受3个参数,看看函数的声明吧
#5
头文件里也是带了三个参数:int getopt(int argc, char** argv, char* optstr);
#6
GETOPT是个posix函数,你的用法是对的,你加
#include<stdio.h>
#include<unistd.h>
试一下
MS已经不支持这个函数了
#include<stdio.h>
#include<unistd.h>
试一下
MS已经不支持这个函数了
#7
开来是调用了古董级别的库函数
#8
呵呵。。。。
down个就是了
down个就是了
#9
楼上的对,这个函数在linux/unix下可以用
#10
是楼上的楼上的楼上的
#11
http://switch.dl.sourceforge.net/sourceforge/freegetopt/freegetopt-0.11.tar.gz
#12
这个是通用版本,随便你什么
呵呵
呵呵
#13
int getopt(int argc, char** argv, char* optstr);
定义的是char*而非const char*;
因此不能直接赋const char*型数值"vsM:m:d:" 为第三个参数;
将 int opt= getopt(argc, argv, "vsM:m:d:");改成:
...
char tmp[]="vsM:m:d:";
int opt= getopt(argc, argv, tmp);
...
试试~ 应该可以了!
定义的是char*而非const char*;
因此不能直接赋const char*型数值"vsM:m:d:" 为第三个参数;
将 int opt= getopt(argc, argv, "vsM:m:d:");改成:
...
char tmp[]="vsM:m:d:";
int opt= getopt(argc, argv, tmp);
...
试试~ 应该可以了!