Linux ns1.utparral.edu.mx 6.8.0-79-generic #79~22.04.1-Ubuntu SMP PREEMPT_DYNAMIC Fri Aug 15 16:54:53 UTC 2 x86_64
Apache/2.4.58 (Unix) OpenSSL/1.1.1w PHP/8.2.12 mod_perl/2.0.12 Perl/v5.34.1
: 10.10.1.9 | : 10.10.1.254
Cant Read [ /etc/named.conf ]
daemon
Terminal
AUTO ROOT
Adminer
Backdoor Destroyer
Linux Exploit
Lock Shell
Lock File
Create User
README
+ Create Folder
+ Create File
/
opt /
lampp /
share /
doc /
freetds-0.91 /
userguide /
[ HOME SHELL ]
Name
Size
Permission
Action
about.htm
5.13
KB
-rw-r--r--
aboutunicode.htm
6.69
KB
-rw-r--r--
acknowledgments.htm
4.39
KB
-rw-r--r--
advocacy.htm
3.67
KB
-rw-r--r--
ambition.htm
3.52
KB
-rw-r--r--
apireference.htm
4.71
KB
-rw-r--r--
appendmode.htm
4.1
KB
-rw-r--r--
askingforhelp.htm
5.36
KB
-rw-r--r--
build.htm
4.73
KB
-rw-r--r--
choosingtdsprotocol.htm
6.62
KB
-rw-r--r--
config.htm
17.16
KB
-rw-r--r--
configs.htm
4.9
KB
-rw-r--r--
confirminstall.htm
16.33
KB
-rw-r--r--
contrib.htm
5.98
KB
-rw-r--r--
contributors.htm
2.47
KB
-rw-r--r--
ctlib.api.summary.htm
14.88
KB
-rw-r--r--
dblib.api.summary.htm
28.32
KB
-rw-r--r--
domains.htm
6.22
KB
-rw-r--r--
dsnless.htm
5.96
KB
-rw-r--r--
envvar.htm
6.93
KB
-rw-r--r--
freetdsconf.htm
18.39
KB
-rw-r--r--
freetdshistory.htm
4.45
KB
-rw-r--r--
gfdl-10.htm
3.11
KB
-rw-r--r--
gfdl-11.htm
3.32
KB
-rw-r--r--
gfdl-1.htm
5.42
KB
-rw-r--r--
gfdl-2.htm
2.9
KB
-rw-r--r--
gfdl-3.htm
4.18
KB
-rw-r--r--
gfdl-4.htm
7.25
KB
-rw-r--r--
gfdl-5.htm
3.37
KB
-rw-r--r--
gfdl-6.htm
2.83
KB
-rw-r--r--
gfdl-7.htm
3.07
KB
-rw-r--r--
gfdl-8.htm
2.8
KB
-rw-r--r--
gfdl-9.htm
2.6
KB
-rw-r--r--
gfdl.htm
4.46
KB
-rw-r--r--
help.htm
5.31
KB
-rw-r--r--
index.htm
23.65
KB
-rw-r--r--
index.html
23.65
KB
-rw-r--r--
install.htm
5.59
KB
-rw-r--r--
interfacesfile.htm
3.64
KB
-rw-r--r--
interfacesformat.htm
4.71
KB
-rw-r--r--
interfaceslocation.htm
2.45
KB
-rw-r--r--
interfacespurpose.htm
4.83
KB
-rw-r--r--
iso8859.htm
5.31
KB
-rw-r--r--
isolatecause.htm
4.39
KB
-rw-r--r--
kerberos.htm
3.92
KB
-rw-r--r--
light.taper.htm
3.03
KB
-rw-r--r--
linker.conclusion.htm
2.75
KB
-rw-r--r--
linker.how.htm
13.61
KB
-rw-r--r--
linker.library.check.htm
5.31
KB
-rw-r--r--
locales.htm
6.89
KB
-rw-r--r--
localization.htm
11.32
KB
-rw-r--r--
logging.htm
7.35
KB
-rw-r--r--
mailinglist.htm
4.1
KB
-rw-r--r--
name.lookup.htm
4.14
KB
-rw-r--r--
odbc.api.summary.htm
16.65
KB
-rw-r--r--
odbcconnattr.htm
7.31
KB
-rw-r--r--
odbcdiagnose.htm
8.88
KB
-rw-r--r--
odbcinionly.htm
3.47
KB
-rw-r--r--
odbcombo.htm
4.44
KB
-rw-r--r--
osissues.htm
10.13
KB
-rw-r--r--
packages.htm
4.43
KB
-rw-r--r--
pagenodata.htm
5.88
KB
-rw-r--r--
perl.htm
7.36
KB
-rw-r--r--
php.htm
7.73
KB
-rw-r--r--
portoverride.htm
3.86
KB
-rw-r--r--
prepodbc.htm
9.89
KB
-rw-r--r--
programming.htm
2.76
KB
-rw-r--r--
projects.htm
11.26
KB
-rw-r--r--
python.htm
4.01
KB
-rw-r--r--
qt.htm
2.69
KB
-rw-r--r--
rtl.define.library.htm
8.43
KB
-rw-r--r--
rtl.htm
7.22
KB
-rw-r--r--
samplecode.htm
48.19
KB
-rw-r--r--
seemtooslow.htm
4.72
KB
-rw-r--r--
serverthere.htm
6.59
KB
-rw-r--r--
software.htm
5.79
KB
-rw-r--r--
stunnel.htm
4.11
KB
-rw-r--r--
sybsql.htm
4.56
KB
-rw-r--r--
tdshistory.htm
5.16
KB
-rw-r--r--
tdspool.htm
7.72
KB
-rw-r--r--
troubleshooting.htm
10.84
KB
-rw-r--r--
unicodefreetds.htm
4.96
KB
-rw-r--r--
unicodegoodbad.htm
4.99
KB
-rw-r--r--
unicode.htm
4.07
KB
-rw-r--r--
unicodeutf.htm
5.32
KB
-rw-r--r--
uodbc.htm
5.7
KB
-rw-r--r--
uothread.htm
3.19
KB
-rw-r--r--
usefreetds.htm
6.26
KB
-rw-r--r--
userguide.css
295
B
-rw-r--r--
what.htm
7.85
KB
-rw-r--r--
Delete
Unzip
Zip
${this.title}
Close
Code Editor : rtl.define.library.htm
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> <HTML ><HEAD ><TITLE >What is a C library?</TITLE ><META NAME="GENERATOR" CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK REL="HOME" TITLE="FreeTDS User Guide" HREF="index.htm"><LINK REL="UP" TITLE="On Linkers" HREF="rtl.htm"><LINK REL="PREVIOUS" TITLE="On Linkers" HREF="rtl.htm"><LINK REL="NEXT" TITLE="Checking if a Library Provides a Function" HREF="linker.library.check.htm"><LINK REL="STYLESHEET" TYPE="text/css" HREF="userguide.css"><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=utf-8"></HEAD ><BODY CLASS="SECTION" BGCOLOR="#FFFFFF" TEXT="#000000" LINK="#0000FF" VLINK="#840084" ALINK="#0000FF" ><DIV CLASS="NAVHEADER" ><TABLE SUMMARY="Header navigation table" WIDTH="100%" BORDER="0" CELLPADDING="0" CELLSPACING="0" ><TR ><TH COLSPAN="3" ALIGN="center" ><SPAN CLASS="PRODUCTNAME" >FreeTDS</SPAN > User Guide: A Guide to Installing, Configuring, and Running <SPAN CLASS="PRODUCTNAME" >FreeTDS</SPAN ></TH ></TR ><TR ><TD WIDTH="10%" ALIGN="left" VALIGN="bottom" ><A HREF="rtl.htm" ACCESSKEY="P" >Prev</A ></TD ><TD WIDTH="80%" ALIGN="center" VALIGN="bottom" >Appendix A. On Linkers</TD ><TD WIDTH="10%" ALIGN="right" VALIGN="bottom" ><A HREF="linker.library.check.htm" ACCESSKEY="N" >Next</A ></TD ></TR ></TABLE ><HR ALIGN="LEFT" WIDTH="100%"></DIV ><DIV CLASS="SECTION" ><H1 CLASS="SECTION" ><A NAME="RTL.DEFINE.LIBRARY" >What is a C library?</A ></H1 ><P >A C library is a set of named functions, for example <TT CLASS="LITERAL" >dbinit()</TT > or <TT CLASS="LITERAL" >SQLConnect()</TT >. Or, for that matter, <TT CLASS="LITERAL" >fopen(3)</TT ><A NAME="AEN6435" HREF="#FTN.AEN6435" ><SPAN CLASS="footnote" >[1]</SPAN ></A >. </P ><P >Libraries come in two flavors: <I CLASS="FIRSTTERM" >static</I > and <I CLASS="FIRSTTERM" >dynamic</I >. </P ><DIV CLASS="SECTION" ><H2 CLASS="SECTION" ><A NAME="RTL.DEFINE.LIBRARY.STATIC" >Static libraries</A ></H2 ><P >Static libraries (also known as <I CLASS="FIRSTTERM" >archives</I >) have been around as long as C itself. Like a <TT CLASS="LITERAL" >.zip</TT > file, they're just a bag of object files — containing functions, of course — with a table of contents in front giving the address of each name<A NAME="AEN6446" HREF="#FTN.AEN6446" ><SPAN CLASS="footnote" >[2]</SPAN ></A >. Static libraries are created from object files using a <I CLASS="FIRSTTERM" >librarian</I > utility of some kind. One such programs is <B CLASS="COMMAND" >ar</B >, for <SPAN CLASS="emphasis" ><I CLASS="EMPHASIS" >archive</I ></SPAN >. </P ><P >Static libraries are part of the build environment. Functions in static libraries are joined to a program's main module by a <I CLASS="FIRSTTERM" >static linker</I > at build time to produce an executable program. The executable incorporates the libraries' object code into its own body, making it completely self-sufficient. </P ></DIV ><DIV CLASS="SECTION" ><H2 CLASS="SECTION" ><A NAME="RTL.DEFINE.LIBRARY.DYNAMIC" >Dynamic libraries</A ></H2 ><P >Dynamic libraries are the new kid on the block, as these things go, arriving on the Unix scene circa 1985. Like a static library, a dynamic library is a collection of functions with a table of contents. They are referenced at build time to give the executatble information about how they will eventually be used, but they aren't <SPAN CLASS="emphasis" ><I CLASS="EMPHASIS" >used</I ></SPAN > until run time. </P ><P >Dynamic libraries are part of the run-time environment. When a program is run, the run-time linker finds the dynamic libraries needed by the program, finds the addresses of the required functions, and assembles a runable image in memory. Missing libraries and/or missing functions — or the wrong versions of them — can lead to head-scratching and other amusing behavior. </P ><P >In Windows® dynamic libraries are called <I CLASS="FIRSTTERM" >dynamic link libraries</I > (DLLs). In Unix they're normally called <I CLASS="FIRSTTERM" >shared objects</I >. But they're roughly the same thing. </P ><P ><DIV CLASS="NOTE" ><P ></P ><TABLE CLASS="NOTE" WIDTH="100%" BORDER="0" ><TR ><TD WIDTH="25" ALIGN="CENTER" VALIGN="TOP" ><IMG SRC="../images/note.gif" HSPACE="5" ALT="Note"></TD ><TH ALIGN="LEFT" VALIGN="MIDDLE" ><B >What about <TT CLASS="LITERAL" >.h</TT > files?</B ></TH ></TR ><TR ><TD > </TD ><TD ALIGN="LEFT" VALIGN="TOP" ><P >C header files include <I CLASS="FIRSTTERM" >functional prototypes</I >, declarations (not <SPAN CLASS="emphasis" ><I CLASS="EMPHASIS" >definitions)</I ></SPAN > of functions. Functional prototypes describe to the compiler each function's parameters, allowing the compiler to confirm that the function is being called correctly. </P ><P >Most of the functions declared in header files are implemented in libraries. However, there's <SPAN CLASS="emphasis" ><I CLASS="EMPHASIS" >no mechanical or automatic relationship</I ></SPAN > between the functional prototypes in the header files and their implementation in a library. The <TT CLASS="LITERAL" >.h</TT > file is maintained by hand, by the programmer, and is used to generate a library. The header file and associated library are distributed and installed together (one hopes), but correct installation and subsequent use by the compiler & linker require human beings to keep track of the pair. Failure to do so leads to <SPAN CLASS="QUOTE" >"interesting"</SPAN > development and even run-time problems, especially with libraries whose functions' parameters change from version to version. </P ><P >For example, imagine a function <TT CLASS="LITERAL" >f(int g)</TT > defined in library <TT CLASS="FILENAME" >libf.so</TT > and declared in <TT CLASS="FILENAME" >f.h</TT >. In a later version of <TT CLASS="FILENAME" >libf.so</TT >, the function's parameter is changed to use a pointer, <TT CLASS="LITERAL" >f(int *p)</TT >, and <TT CLASS="FILENAME" >f.h</TT > is likewise updated. Possible errors that cannot be prevented by the linker include: <P ></P ><OL TYPE="1" ><LI ><P >An old program could use the new library. Probably the integer it passes will be interpreted as an out-of-bounds address, resulting in a segmentation violation. </P ></LI ><LI ><P >A new program could use the old library, passing an address that the library interprets as an integer. Hillarity ensues. </P ></LI ><LI ><P >Existing source code could be compiled using the old header file but linked to the new library. If you've never done that, give it time. </P ></LI ></OL > These errors are possible because C functions are identified to the linker <SPAN CLASS="emphasis" ><I CLASS="EMPHASIS" >by name only</I ></SPAN >. On the upside, that makes the tools simple and easy to implement and, by the same token, simplifies the use of C libraries by other languages. The downside is that the work of ensuring that the right libraries are used becomes an administrative task instead of a technical one. </P ></TD ></TR ></TABLE ></DIV ></P ></DIV ></DIV ><H3 CLASS="FOOTNOTES" >Notes</H3 ><TABLE BORDER="0" CLASS="FOOTNOTES" WIDTH="100%" ><TR ><TD ALIGN="LEFT" VALIGN="TOP" WIDTH="5%" ><A NAME="FTN.AEN6435" HREF="rtl.define.library.htm#AEN6435" ><SPAN CLASS="footnote" >[1]</SPAN ></A ></TD ><TD ALIGN="LEFT" VALIGN="TOP" WIDTH="95%" ><P >The Unix convention is to put in parentheses behind the name the section of the manual in which the function is documented. <SPAN CLASS="PRODUCTNAME" >FreeTDS</SPAN > functions don't get numbers because they're not in the manual. Yet. </P ></TD ></TR ><TR ><TD ALIGN="LEFT" VALIGN="TOP" WIDTH="5%" ><A NAME="FTN.AEN6446" HREF="rtl.define.library.htm#AEN6446" ><SPAN CLASS="footnote" >[2]</SPAN ></A ></TD ><TD ALIGN="LEFT" VALIGN="TOP" WIDTH="95%" ><P >Or, depending on how you look at it, the name of each address.</P ></TD ></TR ></TABLE ><DIV CLASS="NAVFOOTER" ><HR ALIGN="LEFT" WIDTH="100%"><TABLE SUMMARY="Footer navigation table" WIDTH="100%" BORDER="0" CELLPADDING="0" CELLSPACING="0" ><TR ><TD WIDTH="33%" ALIGN="left" VALIGN="top" ><A HREF="rtl.htm" ACCESSKEY="P" >Prev</A ></TD ><TD WIDTH="34%" ALIGN="center" VALIGN="top" ><A HREF="index.htm" ACCESSKEY="H" >Home</A ></TD ><TD WIDTH="33%" ALIGN="right" VALIGN="top" ><A HREF="linker.library.check.htm" ACCESSKEY="N" >Next</A ></TD ></TR ><TR ><TD WIDTH="33%" ALIGN="left" VALIGN="top" >On Linkers</TD ><TD WIDTH="34%" ALIGN="center" VALIGN="top" ><A HREF="rtl.htm" ACCESSKEY="U" >Up</A ></TD ><TD WIDTH="33%" ALIGN="right" VALIGN="top" >Checking if a Library Provides a Function</TD ></TR ></TABLE ></DIV ></BODY ></HTML >
Close