SLGetPrinterList(3)
SLGetPrinterList, SLGetPrinterInfo - get printer information
As shipped in IRIX 6.5.15. Unchanged since IRIX 6.5.
NAME SLGetPrinterList, SLGetPrinterInfo - get printer information SYNOPSIS #include <spool.h> int SLGetPrinterList(SLPrinterStruct *printersp[], int *num_printersp); int SLGetPrinterInfo(const char *printer, SLPrinterStruct **pinfo); DESCRIPTION SLGetPrinterList returns a list of the printers registered with the default spooling system. printersp is set by the function to point to a list of SLPrinterStruct structures. These structures contain detailed information about each printer. num_printersp is set to the number of printers in the list. The returned list of printers is sorted alphabetically according to the local_name field. The sort is case independent. SLGetPrinterInfo returns information about a single printer. printer specifies the name of the printer for which information is desired. If printer is NULL, the default printer will be used. pinfo is set by the function to point to a SLPrinterStruct structure containing the information about the printer. The SLPrinterStruct is defined as: typedef struct _slPrinterStruct { char *local_name; /* Local printer name */ char *formal_name; /* Formal printer name */ char *type; /* Printer type (eg. Color) */ char *dev; /* Port name (eg. /dev/plp) */ unsigned int is_def: 1; /* 1 == default printer */ unsigned int is_class: 1; /* 1 == printer is class */ unsigned int is_networked: 1; /* 1 == network printer */ unsigned int _padding: 29; /* Unused - for alignment */ char *remote_host; /* Remote machine name */ char *remote_name; /* Remote printer name */ char *network_type; /* Remote machine type */ } SLPrinterStruct; RETURN VALUE 0 is returned if execution was successful. -1 is returned and SLerrno is set if an execution error has occurred. EXECUTION ERROR CODES SLGetPrinterList and SLGetPrinterInfo will fail under the following circumstances. SL_ERR_FIND_SPOOLER An error occurred while attempting to determine the available printer spooling systems. SL_ERR_NO_SPOOLERS There are no printer spooling systems available. In addition, SLGetPrinterInfo will fail under the following conditions. SL_ERR_NO_DEF_PRINTER There is no default printer registered with the printer spooling system. SL_ERR_BAD_PRINTER_NAME The printer name specified is either an empty string (""), or a string consisting entirely of whitespace. SL_ERR_BAD_CLASS_MEMBER The specified printer class contains an invalid printer. WARNING A pointer to printersp obtained by a previous call to SLGetPrinterList will be invalid after subsequent calls to the function. The contents of the printer list printersp must be copied to be preserved. Note that the character string fields of the structure must be duplicated in any copy operation since these pointers also become invalid. Similarly, the contents of the structure pointed to by pinfo will not be preserved across calls to SLGetPrinterInfo. NOTES The following notes refer to BSD and System V systems to indicate the use of the BSD and System V printer spooling systems respectively. All mention of "fields" refers to the fields of the SLPrinterStruct structure. 1. On BSD systems it is assumed that the formal_name field is the last printer name to appear in the /etc/printcap entry printer name list. 2. On any spooling system, if the formal_name cannot be determined it will be set to the value of type. 3. On BSD systems the printer type (ty=) may not be specified in the /etc/printcap file entry for the printer. In that case the type field will be set to the string "Unknown". 4. If a printer is not physically connected to the user's workstation, but is accessed over the network, the printer is called a networked printer. If a printer is networked, the dev field will be set to a NULL pointer. 5. If the printer is physically connected to the user's workstation, it is called a local printer. If a printer is local, the remote_host, remote_name, and network_type fields will be set to the NULL pointer. 6. On BSD systems one physical printer can be referred to by many names. Therefore, it is possible for more than one printer in the printer list to be marked as the default printer (i.e. def = 1). 7. On System V systems the is_class field is set to 1 if the printer is actually a printer class rather than an actual physical printer. On BSD systems this field is always set to 0. SEE ALSO SLGetDefPrinterName(3), SLPerror(3), libspool(3)