ITEM: AJ9998L
How to check print q status from C program?
Question:
How can I check the status of a print queue within a
C program to test whether a print queue is DOWN, READY,
and so on?
Response:
ACT:
You will need to open the file:
/var/spool/lpd/stat/s.\.\
The 3rd byte of this file contains the information that
you are looking for, but to do it the right way,
read sizeof(struct stfile) bytes from this file into
a struct of type stfile (defined in /usr/include/IN/stfile.h)
Then, you can check the value of the s_status field of the
stfile struct and compare against one of the constants
defined in backend.h such as RUNNING, etc.
\#include \
\#include \
\#include \
int main()
{ /* File that has status for this print queue */
FILE *status_file;
/* All info about a print queue status is in a stfile struct */
struct stfile status;
/* The 1st and last byte of the stfile structure */
char *first, *last;
status_file = fopen("/var/spool/lpd/stat/s.queuename.queudevice",
"r");
/* Read sizeof(struct stfile) bytes from stat file into status */
first = (char *)&status;
last = first + sizeof(struct stfile);
while (first \< last)
*(first++) = fgetc(status_file);
/* Print the status found in byte 3 of the structure
This will be 1 for an enabled queue, 4 for a disabled
or DOWN queue as defined in backend.h
*/
printf("%d", status.s_status);
Support Line: How to check print q status from C program? ITEM: AJ9998L
Dated: June 1995 Category: N/A
This HTML file was generated 99/06/24~13:30:27
Comments or suggestions?
Contact us