答案1
问题出在我的代码中。if
语句是if(ret <= 0)
,并且它与libusb_init
就是这样。工作源代码如下所示。
# include<stdio.h>
# include<stdlib.h>
# include<usb.h>
# include<libusb-1.0/libusb.h>
int main(int argc, char *argv[]){
libusb_device **devs;
libusb_context *context = NULL;
size_t list;
size_t i;
int ret;
ret = libusb_init(&context);
if(ret < 0){
perror("libusb_init");
exit(1);
}
list = libusb_get_device_list(context,&devs);
if(list < 0){
fprintf(stderr, "error shuu\n");
libusb_free_device_list(devs,1);
libusb_exit(context);
exit(1);
}
int listp = list;
printf("end %d toxooromj bn\n", listp);
for(i=0;i<list;i++){
//print something
}
libusb_free_device_list(devs,1);
libusb_exit(context);
return 0;
}
特别感谢@Kulfy 告诉我重新考虑再次检查源代码。