Egy kommunikációs végpontot a t_open() hívással foglalhatunk le. Ez visszaad egy (int típusú) filedeszkriptort, amellyel a késobbiekben a kommunikációs végpontra hivatkozni lehet. A t_open() hívás alakja a következo:
td=t_open(filename,flags,info);
Ahol a filename paraméter egy stringre mutat, és az a string tartalmazza az általunk kívánt transzport-protokollt implementáló device driver filenevét (ezek a nevek nem szabványosítottak - a TCP-t leggyakrabban /dev/tcp, az UDP-t pedig /dev/udp néven érhetjük el). A flags paraméter a UNIX rendszerben megismert open() rendszerhívásnál használható flageket tartalmazza - szerepük ugyanz, mint ott volt.
A harmadik paraméter (neve info) egy t_info nevu struktúrára pointer. Ebben a struktúrában adja vissza a rendszer a használt transzport-protokollal kapcsolatos fontosabb információkat. A struktúra szerkezete és az egyes mezoinek a szerepe a következokben lesz ismertetve:
struct t_info {
long addr;
long options;
long tsdu;
long etsdu;
long connect;
long discon;
long servtype;
};
Az egyes mezok jelentése:
(Megjegyzés: a TLI a sürgos adatra az Out of Band Data helyett az Expedited Data fogalmat használja.)
Hogy a használt transzport-protokoll milyen paramétereket ad vissza, azt a következo programmal megtekinthetjük (és ezzel ez az elso példaprogramunk, ami a TLI-t használja):
/*
*
* tinfo.c
*
* Ez a program kiirja a TRANSPORTDEV transzport
* szolgaltato parametereit (t_info komponenset).
*
* Forditasa:
*
* cc tinfo.c -lnsl_s
*/
#include <tiuser.h>
#include <stdio.h>
#include <fcntl.h>
#define TRANSPORTDEV "/dev/tcp"
main()
{
struct t_info ti;
int tfd;
tfd=t_open(TRANSPORTDEV,O_RDWR,&ti);
if (tfd == (-1)) {
perror("Hiba a t_open()-nel!");
exit(1); }
printf("t_info.addr = %ld\n",ti.addr);
printf("t_info.options = %ld\n",ti.options);
printf("t_info.tsdu = %ld\n",ti.tsdu);
printf("t_info.etsdu = %ld\n",ti.etsdu);
printf("t_info.connect = %ld\n",ti.connect);
printf("t_info.discon = %ld\n",ti.discon);
printf("t_info.servtype = %ld\n",ti.servtype);
t_close(tfd);
}