Bạn muốn biết về cái gì trong khai báo ở trên thì search thôi
static hay int hay try_rfc959 hay const char * hay size_t hay struct nf_conntrack_man * hay char ???
static int try_rfc959(const char *, size_t, struct nf_conntrack_man *, char);
static int try_eprt(const char *, size_t, struct nf_conntrack_man *, char);
static int try_epsv_response(const char *, size_t, struct nf_conntrack_man *, char);
int (*getnum)(const char *, size_t, struct nf_conntrack_man *, char);
đây là kiủ khai báo mình chưa gặp lần nào, cũng không biết phải dùng từ khóa nào trên google để tìm hiểu nên post lên đây mong mọi người giúp đỡ
mình cám ơn
Bạn muốn biết về cái gì trong khai báo ở trên thì search thôi
static hay int hay try_rfc959 hay const char * hay size_t hay struct nf_conntrack_man * hay char ???
Hướng dẫn C++: https://www.youtube.com/watch?v=BwLodoQdoY4&list=PL1c9Uxlo-mplJDRGdONNupgo5OCBTyGGn
Trông giống như cách cách khai báo con trỏ hàm.
Chưa thấy bao giờ là lỗi tại chưa vững tay đã lo đi mò cốt.
int (*getnum)(const char *, size_t, struct nf_conntrack_man *, char);
mình ko hiểu dòng này nghĩa là gì, để mình post đoạn code đầy đủ cho các bạn xem
Code:static int try_rfc959(const char *, size_t, struct nf_conntrack_man *, char); static int try_eprt(const char *, size_t, struct nf_conntrack_man *, char); static int try_epsv_response(const char *, size_t, struct nf_conntrack_man *, char); static struct ftp_search { const char *pattern; size_t plen; char skip; char term; enum nf_ct_ftp_type ftptype; int (*getnum)(const char *, size_t, struct nf_conntrack_man *, char); } search[IP_CT_DIR_MAX][2] = { [IP_CT_DIR_ORIGINAL] = { { .pattern = "PORT", .plen = sizeof("PORT") - 1, .skip = ' ', .term = '\r', .ftptype = NF_CT_FTP_PORT, .getnum = try_rfc959, }, { .pattern = "EPRT", .plen = sizeof("EPRT") - 1, .skip = ' ', .term = '\r', .ftptype = NF_CT_FTP_EPRT, .getnum = try_eprt, }, }, [IP_CT_DIR_REPLY] = { { .pattern = "227 ", .plen = sizeof("227 ") - 1, .skip = '(', .term = ')', .ftptype = NF_CT_FTP_PASV, .getnum = try_rfc959, }, { .pattern = "229 ", .plen = sizeof("229 ") - 1, .skip = '(', .term = ')', .ftptype = NF_CT_FTP_EPSV, .getnum = try_epsv_response, }, }, };
đây là code trong kernel linux, mình bây giờ phải có nhiệm vụ đọc hiểu
Nó là con trỏ hàm. Trên forum có một bài rất chi tiết về cái này rồi, tìm đi.
cám ơn các bạn nhìu
Kết bạn với tôi <3
Skype: giautm
Facebook: https://fb.com/giautm.duongntt
Email: giau.tmg@gmail.com