pdf viewer c# : Add jpg to pdf document control application platform web page html windows web browser OReilly_-_POSIX_Programmers_Guide16-part1949

The 
clock()
function defined in Standard C is defined as:
clock_t clock(void);
and returns the amount of processor time used. The standard does not define when the clock
starts, so this function is used to measure the amount of processor time used between two
events, say, the start and end of a complex calculation.
The 
clock()
function returns a number that can be converted to seconds by dividing by
CLOCKS_PER_SEC
.
In addition to the 
clock()
function, POSIX defines a more powerful function called
times()
. This is defined as:
clock_t times(struct tms *buffer);
P
age 138
and returns the amount of real time since the system was started.
*
The return value is useful for
computing the elapsed time between two events. The value of a 
clock_t
can be converted to
seconds by dividing by the macro 
CLK_TCK
.
The 
struct tms
structure contains at least the following members:
Member Name
Description
tms_utime
User CPU time.
tms_stime
System CPU time.
tms_cutime
User time of terminated child processes.
tms_cstime
System time of terminated child processes.
All members have the type 
clock_t
and can be converted to seconds by dividing by the
symbol 
CLK_TCK
. User time is time charged for the execution of user processes. System time
is time charged for executing the system on behalf of the process. Which library
functions
charge system time and the amount that they charge will vary from implementation to
implementation.
If you plan to compile your application on every target computer, dividing by 
CLK_TCK
to get
seconds is fine. However, if you plan to compile in one place and move your compiled binary
from computer to computer, dividing by 
CLK_TCK
may give the wrong answe
r. It is better to
use the 
sysconf(_SC_CLK_TCK)
function to determine this value at run time.
**
The
sysconf()
function is described later in this chapter.
Environment Variables
An array of strings called the 
environment 
is made available when the process begins. This
array is pointed to by the external variable 
environ
, which is defined as:
Add jpg to pdf document - insert images into PDF in C#.net, ASP.NET, MVC, Ajax, WinForms, WPF
Sample C# code to add image, picture, logo or digital photo into PDF document page using PDF page editor control
add jpeg signature to pdf; add image to pdf preview
Add jpg to pdf document - VB.NET PDF insert image library: insert images into PDF in vb.net, ASP.NET, MVC, Ajax, WinForms, WPF
Guide VB.NET Programmers How to Add Images in PDF Document
add picture to pdf online; add image in pdf using java
extern char **environ;
*The 
times()
function does not really need to return the amount of real time since the system was
started. It really returns the amount of real time since some arbitrary point in the past before any
processes were started. Applications can count on this nu
mber increasing as they 
fork()
and
exec()
new processes.
** Of course, the clever system implementer may have defined the 
CLK_TCK
macro with a call to
sysconf()
, for example:
#define CLK_TCK ((clock_t)(__sysconf(3)))
He or she used 
__sysconf()
instead of 
sysconf()
because the 
sysconf()
function is not
declared in 
<time.h>
and is available for the user unless 
<unistd.h>
is included. The value 3 is
used instead of 
_SC_CLK_TCK
for the same reason.
P
age 139
These strings have the form 
name=value
; the following names are defined by POSIX:
Name
Description
HOME
The name of the user's initial working directory.
LANG
The name of the predefined setting for locale.
LC_ALL
The default locale to use if any of the following 
LC_symbols
is not defined.
LC_COLLATE
The name of the locale for collation 
information.
LC_CTYPE
The name of the locale for character classification.
LC_MONETARY
The name of the locale for money related information.
LC_NUMERIC
The name of the locale for numeric editing.
LC_TIME
The name of the locale for date- and time-formatting
information.
LOGNAME
The name of the user's login account.
PATH
The sequence of path prefixes used by 
execlp()
and
execvp()
in locating
programs to run.
TERM
The user's terminal type.
TZ
Time zone information.
The environment variables having to do with locale are used for moving an application from
one country to another. They are discussed in Chapter 10, 
Porting to Far-off Lands.
Of course, some variables may be missing and other environment variables may be present.
Many programs look in the environment variable list for system-specific information. These
programs can be fully portable and still adjust themselves to a given system
. The value string
VB.NET PDF Convert to Jpeg SDK: Convert PDF to JPEG images in vb.
Add necessary references page As PDFPage = doc.GetPage(0) ' Convert the first PDF page to page.ConvertToImage(ImageType.JPEG, Program.RootPath + "\\Output.jpg").
how to add image to pdf; add photo pdf
C# PDF Convert to Jpeg SDK: Convert PDF to JPEG images in C#.net
example, this C#.NET PDF to JPEG converter library will name the converted JPEG image file Output.jpg. Convert PDF to JPEG Using C#.NET. Add necessary references
add jpg to pdf preview; add photo to pdf file
contains some form of user preference information. For example:
mm=/usr/don/mail.rc
or:
haminfo="-call WB2UMF -grid FN42"
The getenvO Function
The 
getenv()
function is used to look up names in the environment strings. This is defined
as:
char *getenv(const char *name);
P
age 140
It searches the environment for name and returns a pointer to the value or 
NULL
if name cannot
be found. Like most functions that return a pointer to a string, 
getenv()
may overwrite the
information on a subsequent call.
Do not attempt to modify the string returned by 
getenv()
; it might be a copy of the real
environment variable.
The sysconf() Function
The POSIX standard is defined exclusively at the source-code level. The objective is that a
conforming application can be compiled and executed on a conforming implementation.
While POSIX does not guarantee binary portability even across machines of the same make and
model, it does try hard not to preclude portability either.
Traditional UNIX applications are distributed in one of two ways:
·
By distributing portable source files that can be tailored to each system (most of the public
domain applications fall into this category). Software distributed in source form can be
tailored in many ways. For example, an installation script can create s
ystem-specific
header files used to compile the application. Applications distributed by the Free Software
Foundation, such as GNU C, provide a good example of this technique.
·
By distributing compiled software for a specific make and model of computer. Software
vendors would like to compile their software and distribute only the compiled binary
because it provides the best security for the software. Software vendors would also
like as
much binary portability as possible.
One of the aids to binary portability is the 
sysconf()
function. It lets an application
determine the run-time value of variables in 
<limits.h>
. The 
sysconf()
function is
defined as:
long sysconf(int name);
where name is a code for one of the system limits.
*
The codes are:
Compile-Time Macro
sysconf()
name
Description
C# Image Convert: How to Convert Adobe PDF to Jpeg, Png, Bmp, &
Add necessary references to your C# project: String inputFilePath = @"C:\input.pdf"; String outputFilePath = @"C:\output.jpg"; // Convert PDF to jpg.
how to add image to pdf reader; how to add a jpeg to a pdf file
C# Image Convert: How to Convert MS PowerPoint to Jpeg, Png, Bmp
Add necessary references to your C# project: RasterEdge.XDoc.PDF.dll. C:\input.pptx"; String outputFilePath = @"C:\output.jpg"; // Convert PowerPoint to jpg.
add multiple jpg to pdf; add a jpg to a pdf
ARG_MAX
_SC_ARG_MAX
The length of the arguments for the 
exec()
function.
_POSIX_CHILD_MAX
_SC_CHILD_MAX
The number of simultaneous processes per real user
ID.
* The most common error I have seen with 
sysconf()
and 
pathconf()
is confusing the
parameter to pass with the value returned. The parameter is always a macro, such as 
_SC_OPEN_MAX
.
The system limit is returned.
P
age 141
Compile-Time Macro
sysconf()
name
Description
CLK_TCK
_SC_CLK_TCK
The number of clock ticks per second.
_POSIX_NGROUPS_MAX
_SC_NGROUPS_MAX
The number of simultaneou
s
supplementary group IDs.
STREAM_MAX*
_SC_STREAM_MAX*
The maximum number of streams that
on
e process can have open at one time.
This is the same as 
FOPEN_MAX
from
the C standard.
TZNAME_MAX*
_SC_TZNAME_MAX*
The maximum number of bytes in a time
zone name.
_POSIX_OPEN_MAX
_SC_OPEN_MAX
The maximum number of files that one
process can have open at 
one time.
_POSIX_JOB_CONTROL
_SC_JOB_CONTROL
Job control functions are supported.
_POSIX_SAVED_IDS
_SC_SAVED_IDS
Each process has a saved 
SETUID 
a saved 
SETGID
.
_POSIX_VERSION
_SC_VERSION
Indicates the 4-digit year and 2-digit
month in which the standa
rd was
approved. The integer 
198808L
indicates
the 1988 version and the integer 
199009L
indicates the 1990 version.
POSIX Section 2.8.4 (2.9.4 in the 1988 version) states, "A definition of one of the values . . .
shall be omitted from the 
<limits.h>
on specific implementations where the corresponding
value is equal to or greater than the stated minimum, but is indetermi
nate." This paragraph has
been interpreted in several different ways. I believe that the safest thing to do is to ignore
symbols and always use the value returned by 
sysconf()
. That is, use
sysconf(_SC_OPEN_MAX)
instead of 
_POSIX_OPEN_MAX
. This will often 
be a more
C# Create PDF from images Library to convert Jpeg, png images to
images.Add(new Bitmap(Program.RootPath + "\\" 1.jpg")); images.Add(new Bitmap(Program.RootPath + "\\" 1.png")); / Build a PDF document with these images
adding an image to a pdf form; how to add image to pdf form
C# WPF PDF Viewer SDK to convert and export PDF document to other
Highlight Text. Add Text. Add Text Box. Drawing Markups. Add Stamp Annotation. image file formats with high quality, support converting PDF to PNG, JPG, BMP and
how to add a jpg to a pdf; how to add an image to a pdf in acrobat
generous value.
* This symbol is defined in IEEE Std 1003.1-1990 but not in IEEE Std 1003.1-1988.
P
age 142
The pathconf() and fpathconf() Functions
Some limits vary not only from system to system but also from file to file. The 
pathconf()
and 
fpathconf()
functions return file-specific configuration information. They are defined
as: 
long pathconf(const char *path, int name);
and:
long fpathconf(int fildes, int name);
The possible values for name are:
Name
Description
_PC_LINK_MAX
Maximum value of a file's link count. If 
path
or 
fildes
refers to
a directory, then this value applies to the entire directory.
_PC_MAX_CANON
Maximum length of a formatted input line. 
path
or 
fildes
must
refer to a terminal.
_
PC_MAX_INPUT
Maximum length of an input line. 
path
or 
fildes 
must refer to a
terminal.
_PC_NAME_MAX
Maximum length of a filename for this directory.
_PC_PATH_MAX
The maximum length of a relative pathname when this directory is
the working directory. That i
s, the number of characters that may be
appended to 
path
and still have a valid pathname.
_PC_PIPE_BUF
Size of the pipe buffer, 
fildes
must refer to a pipe or FIFO.
path
must be a FIFO.
_PC_CHOWN_RESTRICTED
The 
chown(
)
system call may not be used on this f
ile. If 
path
fildes
refers to a directory, then this applies to all files in that
directory
_PC_NO_TRUNC
Generate an error if a filename is truncated in the named directory.
_PC_VDISABLE
Allow special-character processing to be disabled. 
path
or 
fildes
must refer to a terminal.
The 
sysconf()
pathconf()
, and 
fpathconf()
functions were invented by the
POSIX committee. They are not found on older systems. You must use some form of
VB.NET Create PDF from images Library to convert Jpeg, png images
bmp")) images.Add(New REImage(Program.RootPath + "\\" 1.jpg")) images.Add(New REImage(Program.RootPath + "\\" 1.png")) ' Build a PDF document with these
add image to pdf file; add image pdf document
VB.NET PDF Convert to Images SDK: Convert PDF to png, gif images
Convert PDF to Jpg, Png, Bmp, Gif, Tiff and Bitmap in ASP.NET. VB.NET Project: Necessary DLLs for Conversion of PDF to Images. Add necessary references:
how to add image to pdf in preview; add a picture to a pdf file
compile-time value on non-POSIX systems.
The values returned by these functions should be thought of as minimum guarantees. For
example, if 
pathconf(".",_SC_NAME_MAX)
returns 63, your application can
P
age 143
create files with names up to 63 characters. If you read the directory with 
readdir()
, you
may encounter files with names greater than 63 characters. The values returned by
sysconf()
and 
pathconf()
are not suitable for allocating memory. Some values may be
huge.
Portability Lab
To review the contents of this chapter, try to do the following exercises:
1.
This chapter gives two different ways to get the user's login name. What are they? Is there
any advantage to one over the other?
2.
What is the difference between the real user ID and the effective user ID?
3.
What errors does 
geteuid()
detect?
4.
Is there a portability advantage to using 
getpwuid()
instead of just reading
/etc/passwd
?
5.
One way to obtain the number of groups is to call 
getgroups()
with 
gidsetsize
equal to zero. Another way is to use the symbol 
NGROUPS_MAX
. A third way is to call
sysconf(_SC_NGROUPS_MAX)
. It is possible for all three methods to come up with a
different 
answer. Give an example of a good use for each of the methods.
6.
Give one use for the information returned by the 
uname()
function.
7.
Is it possible for a POSIX system to know the local time but not know the UTC time? Why
or why not?
8.
Write a simple program to print out the day of the week on which your birthday falls for the
next 20 years.
9.
The format specifier 
%x
in 
strftime()
prints the date. Why is this better than
%d/%m/%y
? Note: Answers of the form "it is less typing" do not count.
10.
The POSIX committee is working to eliminate the use of the symbol 
CLK_TCK
. Why?
What can replace it?
11.
What is a portable use for the information returned by 
times()
?
12.
What is one disadvantage of using the environment variables to provide user preference
information to an application? What is one advantage?
13.
The 
sysconf()
function is intended to help a compiled program move from one system
to another. What do you think some of the rules are to allow this kind of portability?
14.
What information does the call:
pathconf( "/usr",_PC_NAME_MAX);
return? 
P
age 145
Chapter 8
Terminal I/O 
The functions we have already covered (
scanf(),printf(),read(),write(
), and
so on) are used by most applications to do I/O to a terminal. This chapter concentrates on
the control functions defined in the header file 
<termios.h>
. The vast majority of
applic
ations do not use terminal control functions. We begin by looking at the hardware and
the use of
tcsetattr()
to modify a terminal's parameters. There is an example showing
how to turn off the echoing of input on the terminal screen, a fairly typical use of
the
terminal control functions. Then we go through a detailed description of input processing
and look at all the parameters a program can alter. We look at some examples of using a
terminal port for computer-to-computer communications. Finally, we descri
be POSIX job
control. These are functions used by the shell to control which processes get signals and
which ones have access to the terminal.
The 
1984/usr/group Standard 
attempted to specify a portable mechanism that application
writers could use to get and set the modes of an asynchronous terminal. The intention of that
committee was to provide an interface that was neither implementation-speci
fic nor
hardware-dependent. The terminal interface specification underwent more debate and revision
than any other part of the POSIX standard.
The resulting interface, though it meets all of the original goals, is different from any existing
system. The most dramatic change is the replacement of the 
ioctl()
function with a
collection of terminal-specific functions. The change was made for several
reasons:
·
The 
ioctl()
mechanism is difficult to specify adequately due to its use of a third
argument that varies in both size and type according to the second argument.
·
The exact semantics of 
ioctl()
are different on different systems.
·
None of the existing implementations was adequate in an international environment.
While the functions for terminal control may be new to you, experienced UNIX programmers
will see many familiar things.
P
age 146
Terminal Concepts
A classic terminal is a keyboard and a display (or printer) that is connected to the computer
using an asynchronous communications port. From the perspective of the operating system, the
important characteristic of a terminal is the communications port tha
t connects it to the host and
not the device sitting at the end of the wire. Figure 8-1 shows a typical configuration.
Figure 8-1. Communications hardware
Many UNIX manuals (even the POSIX standard) use the phrase ''terminal parameters'' in a
way that might be confusing. Strictly speaking, the terminal-control library functions change
the characteristics of the communications port and have no effect on the
terminal. When you
read a phrase like "setting the terminal speed," it means setting the speed of the
communications port to match the speed of the terminal.
An asynchronous communications port can be used to talk to other computers, printers, plotters,
and special I/O equipment. The programming techniques used are the same as talking to a
computer terminal.
A serial device sends a character one bit at a time. Each character starts with a leading zero
called the start bit. The data bits are sent one at a time, beginning with the Least Significant
Bit(LSB) and ending with the Most Significant Bit(MSB). The last
bit to be sent is a trailing
one called the stop bit. The ASCII character D might be represented as shown in Figure 8-2.
The ASCII code uses seven data bits. The parity bit is used to make the total number of one bits
even (or, on some systems, odd). The speed of transmission (the number of bits per second that
are transmitted counting the start and stop bits) is called the 
baud rate.
If the stop bit is not a 1, then a framing error takes place. If all of the data bits are zero and
there is a framing error, a break condition occurs.
P
age 147
Figure 8-2. ASCII D
Most terminals operate in full-duplex. When you press a key, a character is sent from the
terminal to the computer. When it receives the character, the computer sends the character back
to the terminal where it is displayed. The process of sending characte
rs back to the terminal is
called 
echoing.
Echoing gives the computer control over the characters displayed by the terminal. Some uses of
echoing are:
·
A program can inhibit echo to hide the characters you type. For example, 
login
inhibits
echo to keep your password secret and 
vi
inhibits echo to prevent commands from
appearing on the screen.
·
A program can echo a special sequence. For example, a backspace may echo as
backspace-space-backspace to wipe out the last character you typed.
You can control echoing using the functions described in this chapter.
Setting Terminal Parameters
Terminal parameters are all manipulated through a data structure known as struct 
termios
.
The 
tcgetattr()
function copies the parameters from the operating system into a
termios
structure and the 
tcsetattr()
function copies the parameters from a 
termios
st
ructure into the operating system. First, we will look at these two functions and then we will
look at the 
termios
structure in detail.
The tcsetattr() and tcgetattr() Functions
The function:
int tcgetattr(int fildes, struct termios *ptr);
copies all of the information associated with 
fildes
into the struct 
termios
pointed to by
ptr
. The 
fildes
argument must be a valid file descriptor associated with a terminal.
P
age 148
The function:
int tcsetattr(int fildes, int option, 
struct termios *ptr); 
copies all of the terminal parameters from the 
struct termios
pointed to by 
ptr
into the
communications port associated with 
fildes
. The 
tcsetattr()
function sets every
terminal parameter with one call. There is no way to selectively set terminal parameter
s. The
fildes
argument must be a valid file descriptor associated with a terminal. The 
option
argument must be one of the following symbols:
Symbol
Description
TCSANOW
The changes occur immediately.
TCSADRAIN
The changes occur after all output written to 
fildes
has been transmitted. This
function may be used when changing parameters that affect output. See "Avoiding
Pitfalls" on Page 161.
TCSAF
LUSH
Same as 
TCSADRAIN
except that, in addition to waiting for output, all input that had
been received but not read is discarded.
The 
tcsetattr()
function does not detect errors in the struct 
termios
. If there are
invalid combinations, 
tcsetattr()
just does its best. If you need to know if a particular
terminal attribute was correctly set, you must follow the 
tcsetattr()
with a
tcget
attr()
The termios Structure
The 
tcgetattr()
and 
tcsetattr()
functions read or write all of the terminal
parameters with one call. The proper way to modify terminal parameters is by reading them
with 
tcgetattr()
, changing the parameters of interest, and rewriting them with
tcsetattr()
.
The 
termios
structure and all of the functions that operate on it are defined in
<termios.h>
. Most of the terminal parameters should not be changed by an application.
These parameters can be explicitly changed by the user using a utility such as 
stty
. The
termios
structure has five members and each member has flags defined by POSIX as well as
system-specific flags:
P
age 149
Member Name
Member Type
Description
c_iflag
tcflag_t
Controls the processing of input data. There are 11 flags defined
by POSIX. There is only one, 
ISTRIP
, that may be of interest to a
portable application. This flag causes input characters to be
masked to
seven bits.
c_oflag
tcflag_t
Controls the processing of output data. The only flag defined by
POSIX
OPOST
, causes system-specific output processing. There
are no flags of interest to a portable application.
c_cflag
tcf lag_t
Controls information related 
to the hardware, for example, the
parity setting. There are seven flags defined by POSIX, none of
interest to a portable application.
c_lflag
tcflag_t
Controls echoing and character processing. There are nine flags
defined by POSIX; four of these flags may
be modified by a
portable application:
ECHO
Turns on echoing.
ICANON
Turns on input processing.
Documents you may be interested
Documents you may be interested