📄 ldaopen.c
字号:
#include <system.h>#include <stdio.h>#include "filehdr.h"#include "ldfcn.h"/* static char *sccs_id = "@(#)ldaopen.c 1.2 12/8/89 ESI, ATT"; */#if ANSI int vldldptr( LDFILE *); LDFILE *allocldptr(); void freeldptr( LDFILE *); void hdrassign( LDFILE *, LDFILE *);#else int vldldptr(); LDFILE *allocldptr(); void freeldptr(); void hdrassign( );#endif LDFILE *ldaopen(filename, oldptr) char *filename; LDFILE *oldptr; { FILE *ioptr; LDFILE *nldptr; if (vldldptr(oldptr) == FAILURE || (nldptr = allocldptr()) == NULL) return (NULL);#if MSDOS if ((ioptr = fopen(filename, "rb")) == NULL)#else if ((ioptr = fopen(filename, "r")) == NULL)#endif { freeldptr(nldptr); return (NULL); } IOPTR(nldptr) = ioptr; OFFSET(nldptr) = OFFSET(oldptr); TYPE(nldptr) = TYPE(oldptr); hdrassign(oldptr, nldptr); nldptr->_fnum_ = oldptr->_fnum_; /* use same string table */ return (nldptr);}voidhdrassign(oldptr, nldptr)LDFILE *oldptr;LDFILE *nldptr;{ (HEADER(nldptr)).f_magic = (HEADER(oldptr)).f_magic; (HEADER(nldptr)).f_nscns = (HEADER(oldptr)).f_nscns; (HEADER(nldptr)).f_timdat = (HEADER(oldptr)).f_timdat; (HEADER(nldptr)).f_symptr = (HEADER(oldptr)).f_symptr; (HEADER(nldptr)).f_nsyms = (HEADER(oldptr)).f_nsyms; (HEADER(nldptr)).f_opthdr = (HEADER(oldptr)).f_opthdr; (HEADER(nldptr)).f_flags = (HEADER(oldptr)).f_flags; return;}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -