如何声明一次传递一个参数 argv[i] 的函数?在 C 中
How declare function to pass one argument argv[i] at a time? In C
当我跳转到函数 parseLayerFile 文件名时调试是 (char **) 0x40a04e <_Jv_RegisterClasses+4235342>... 如何更正声明以获得有效的文件名值?
void parseArgs(WRAPPER_t *w, int argc, char *argv[])
{
int i;
for (i=1 ;i<argc ;i++) {
if (strcmp(argv[i],"-layers") == 0) {
i++;
parseLayerFile(argv[i]);
}
} // for
}
int parseLayerFile(WRAPPER_t * w, char*filename[]){
unsigned char * buffer; size_t size;
size = get_fileContent(filename, &buffer);
}
int main(int argc, char **argv)
{
WRAPPER_t * w;
w = create_wrapper(); // w - main object
threads_init(w);
parseArgs(w, argc, argv);
return 0;
}
int parseLayerFile(WRAPPER_t * w, char*filename[])
需要两个参数。
您只用一个参数调用它:
parseLayerFile(argv[i]);
根据参数none的需要,修改函数如下:
int parseLayerFile(const char * filename)
{
unsigned char * buffer;
size_t size = get_fileContent(filename, &buffer);
}
当我跳转到函数 parseLayerFile 文件名时调试是 (char **) 0x40a04e <_Jv_RegisterClasses+4235342>... 如何更正声明以获得有效的文件名值?
void parseArgs(WRAPPER_t *w, int argc, char *argv[])
{
int i;
for (i=1 ;i<argc ;i++) {
if (strcmp(argv[i],"-layers") == 0) {
i++;
parseLayerFile(argv[i]);
}
} // for
}
int parseLayerFile(WRAPPER_t * w, char*filename[]){
unsigned char * buffer; size_t size;
size = get_fileContent(filename, &buffer);
}
int main(int argc, char **argv)
{
WRAPPER_t * w;
w = create_wrapper(); // w - main object
threads_init(w);
parseArgs(w, argc, argv);
return 0;
}
int parseLayerFile(WRAPPER_t * w, char*filename[])
需要两个参数。
您只用一个参数调用它:
parseLayerFile(argv[i]);
根据参数none的需要,修改函数如下:
int parseLayerFile(const char * filename)
{
unsigned char * buffer;
size_t size = get_fileContent(filename, &buffer);
}