02-04-2013
Why this is needed in C goes to the heart of how C compiles and links.
Including <stdio.h> tells the compiler that "somewhere, there exists a function named fgets, which takes arguments of char *, int, and FILE *". So the compiler will assume that function exists, not complain about it when you use it, and get the arguments right without guessing. It doesn't need the function itself yet.
Later, when it links your program, it assembles everything from pieces and when it hunts for this name, it will find it in the standard libc library.
Once it's done piecing all these bits together, what it gives you is a program that can be loaded in memory, which is the bit you actually run.
This User Gave Thanks to Corona688 For This Post:
10 More Discussions You Might Find Interesting
1. UNIX for Dummies Questions & Answers
can some one please tell the meaning of the second statement i.e
n=${m#*=}
i couldnt get the meaning of the #*=
1.) m="mohit=/c/main/issue"
echo $m
result
-----------
mohit=/c/main/issue
2.) n=${m#*=}
echo $n
RESULT
-------
/c/main/issue (1 Reply)
Discussion started by: narang.mohit
1 Replies
2. Shell Programming and Scripting
can someone please tell what !* means in shell syntax.
Regards, (3 Replies)
Discussion started by: busyboy
3 Replies
3. Programming
hi guys.
can we use fread and fwrite with pipes to write data more than PIPE_BUF atomically since they lock FILE object until I/O operation finish? (1 Reply)
Discussion started by: majid.merkava
1 Replies
4. Programming
Hi guys.
To work with physical files, sockets, pipes, ... which library is good? stdio or unistd
stdio.h functions perform buffering and rationally should be better than unistd.h routines. but i am wondering why all UNIX programming books use unistd.h routines for almost all types of I/O... (7 Replies)
Discussion started by: majid.merkava
7 Replies
5. Programming
Hi All,
I am new to linux and Programming.
Inside the file stdio.h, there is a description about FILE structure. Which has many internal data members like _p, _r, _flags etc.
I have written a sample code to find out the contents of the FILE structure.
It opens a sample file ( FILE *fp ),... (5 Replies)
Discussion started by: nikunjbadjatya
5 Replies
6. Shell Programming and Scripting
Hi ,
Can anyone please let me know whta the follwoing piece of code for
ScriptName=${0##*/}
if pgrep -f "$ScriptName" | grep -v "^$$\$" ; then
echo `date`": Sctipt $ScritName is already runnig"
exit
fi
Thnx a lot in advance
Please use code tags when posting data and code... (8 Replies)
Discussion started by: Pratik4891
8 Replies
7. UNIX for Dummies Questions & Answers
Hi all,
I wanna know the meaning of the last word "<<! "
sudo su - user <<!
please help on this !!!! (1 Reply)
Discussion started by: sudharson
1 Replies
8. Programming
Hi friends,
I hope u r doing well. I have just installed Solaris 11, and it seems that solaris 11 doesn't come with all the packages, one has to do everything manually. I download gcc from sunfreeware.com and installed it. After setting up the path variable, I tried to compile the hello world... (4 Replies)
Discussion started by: gabam
4 Replies
9. Solaris
Trying to compile a C program recievin this
hello.c:1:19: fatal error: stdio.h: No such file or directory
gcc is installed on the system.
echo $PATH
/usr/bin:/usr/sbin:/usr/gcc/4.5/include/c++/4.5.2/tr1
root@Sol11swtb01:/media/NO NAME/Programming/C/Testing# cd... (2 Replies)
Discussion started by: Fingerz
2 Replies
10. Programming
I am facing a problem in the below given code.
int main()
{
printf("\nHello Geeks\n\n") ;
return 0 ;
}
In the above mentioned code i left including "#include ". And if i compile and execute this piece of code, the output is printed as expected. But "#include " being the most important... (7 Replies)
Discussion started by: Raj 89
7 Replies
PWCONV(8) System Management Commands PWCONV(8)
NAME
pwconv, pwunconv, grpconv, grpunconv - convert to and from shadow passwords and groups
SYNOPSIS
pwconv
pwunconv
grpconv
grpunconv
DESCRIPTION
The pwconv command creates shadow from passwd and an optionally existing shadow.
The pwunconv command creates passwd from passwd and shadow and then removes shadow.
The grpconv command creates gshadow from group and an optionally existing gshadow.
The grpunconv command creates group from group and gshadow and then removes gshadow.
These four programs all operate on the normal and shadow password and group files: /etc/passwd, /etc/group, /etc/shadow, and /etc/gshadow.
Each program acquires the necessary locks before conversion. pwconv and grpconv are similar. First, entries in the shadowed file which
don't exist in the main file are removed. Then, shadowed entries which don't have `x' as the password in the main file are updated. Any
missing shadowed entries are added. Finally, passwords in the main file are replaced with `x'. These programs can be used for initial
conversion as well to update the shadowed file if the main file is edited by hand.
pwconv will use the values of PASS_MIN_DAYS, PASS_MAX_DAYS, and PASS_WARN_AGE from /etc/login.defs when adding new entries to /etc/shadow.
Likewise pwunconv and grpunconv are similar. Passwords in the main file are updated from the shadowed file. Entries which exist in the main
file but not in the shadowed file are left alone. Finally, the shadowed file is removed. Some password aging information is lost by
pwunconv. It will convert what it can.
BUGS
Errors in the password or group files (such as invalid or duplicate entries) may cause these programs to loop forever or fail in other
strange ways. Please run pwck and grpck to correct any such errors before converting to or from shadow passwords or groups.
CONFIGURATION
The following configuration variable in /etc/login.defs changes the behavior of grpconv and grpunconv:
MAX_MEMBERS_PER_GROUP (number)
Maximum members per group entry. When the maximum is reached, a new group entry (line) is started in /etc/group (with the same name,
same password, and same GID).
The default value is 0, meaning that there are no limits in the number of members in a group.
This feature (split group) permits to limit the length of lines in the group file. This is useful to make sure that lines for NIS
groups are not larger than 1024 characters.
If you need to enforce such limit, you can use 25.
Note: split groups may not be supported by all tools (even in the Shadow toolsuite). You should not use this variable unless you really
need it.
The following configuration variables in /etc/login.defs change the behavior of pwconv:
PASS_MAX_DAYS (number)
The maximum number of days a password may be used. If the password is older than this, a password change will be forced. If not
specified, -1 will be assumed (which disables the restriction).
PASS_MIN_DAYS (number)
The minimum number of days allowed between password changes. Any password changes attempted sooner than this will be rejected. If not
specified, -1 will be assumed (which disables the restriction).
PASS_WARN_AGE (number)
The number of days warning given before a password expires. A zero means warning is given only upon the day of expiration, a negative
value means no warning is given. If not specified, no warning will be provided.
FILES
/etc/login.defs
Shadow password suite configuration.
SEE ALSO
grpck(8), login.defs(5), pwck(8).
System Management Commands 06/24/2011 PWCONV(8)