📄 extattr.xs
字号:
#ifdef __cplusplusextern "C" {#endif#include "EXTERN.h"#include "perl.h"#include "XSUB.h"#ifdef __cplusplus}#endif#include "myea.h"SV *my_eadvalue(pTHX_ _ead ead, int index){ SV *sv; int size = _ead_value_size(ead, index); const char *p; if (size == -1) { Perl_die(aTHX_ "Error getting size of EA: %s", strerror(errno)); } p = _ead_get_value(ead, index); return newSVpv(p, size);}#define my_eadreplace(ead, index, sv, flag) \ _ead_replace((ead), (index), flag, SvPVX(sv), SvCUR(sv))#define my_eadadd(ead, name, sv, flag) \ _ead_add((ead), (name), flag, SvPVX(sv), SvCUR(sv))MODULE = OS2::ExtAttr PACKAGE = OS2::ExtAttr PREFIX = my_eadSV *my_eadvalue(ead, index) _ead ead int index CODE: RETVAL = my_eadvalue(aTHX_ ead, index); OUTPUT: RETVALintmy_eadreplace(ead, index, sv, flag = 0) _ead ead int index SV * sv int flagintmy_eadadd(ead, name, sv, flag = 0) _ead ead char * name SV * sv int flagMODULE = OS2::ExtAttr PACKAGE = OS2::ExtAttr PREFIX = _eavoid_ea_free(ptr) struct _ea * ptrint_ea_get(dst, path, handle, name) struct _ea * dst char * path int handle char * nameint_ea_put(src, path, handle, name) struct _ea * src char * path int handle char * nameint_ea_remove(path, handle, name) char * path int handle char * nameMODULE = OS2::ExtAttr PACKAGE = OS2::ExtAttr PREFIX = _eadint_ead_add(ead, name, flags, value, size) _ead ead char * name int flags void * value int sizevoid_ead_clear(ead) _ead eadint_ead_copy(dst_ead, src_ead, src_index) _ead dst_ead _ead src_ead int src_indexint_ead_count(ead) _ead ead_ead_ead_create()int_ead_delete(ead, index) _ead ead int indexvoid_ead_destroy(ead) _ead eadint_ead_fea2list_size(ead) _ead eadvoid *_ead_fea2list_to_fealist(src) void * srcvoid *_ead_fealist_to_fea2list(src) void * srcint_ead_find(ead, name) _ead ead char * nameconst void *_ead_get_fea2list(ead) _ead eadint_ead_get_flags(ead, index) _ead ead int indexconst char *_ead_get_name(ead, index) _ead ead int indexconst void *_ead_get_value(ead, index) _ead ead int indexint_ead_name_len(ead, index) _ead ead int indexint_ead_read(ead, path, handle, flags) _ead ead char * path int handle int flagsint_ead_replace(ead, index, flags, value, size) _ead ead int index int flags void * value int sizevoid_ead_sort(ead) _ead eadint_ead_use_fea2list(ead, src) _ead ead void * srcint_ead_value_size(ead, index) _ead ead int indexint_ead_write(ead, path, handle, flags) _ead ead char * path int handle int flags
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -