mirror of
https://sourceware.org/git/glibc.git
synced 2025-07-29 11:41:21 +03:00
BZ #13792: License manual example source files under GPL.
This commit is contained in:
47
ChangeLog
47
ChangeLog
@ -1,5 +1,52 @@
|
|||||||
2012-03-02 Roland McGrath <roland@hack.frob.com>
|
2012-03-02 Roland McGrath <roland@hack.frob.com>
|
||||||
|
|
||||||
|
[BZ #13792]
|
||||||
|
* manual/examples/README: New file, says the example source files
|
||||||
|
can be used under GPL>=2.
|
||||||
|
* manual/Makefile (%.c.texi): Eat the leading part of the file until a
|
||||||
|
line containing just "*/".
|
||||||
|
* manual/examples/add.c: Add copyright header (GPL>=2).
|
||||||
|
* manual/examples/argp-ex1.c: Likewise.
|
||||||
|
* manual/examples/argp-ex2.c: Likewise.
|
||||||
|
* manual/examples/argp-ex3.c: Likewise.
|
||||||
|
* manual/examples/argp-ex4.c: Likewise.
|
||||||
|
* manual/examples/atexit.c: Likewise.
|
||||||
|
* manual/examples/db.c: Likewise.
|
||||||
|
* manual/examples/dir.c: Likewise.
|
||||||
|
* manual/examples/dir2.c: Likewise.
|
||||||
|
* manual/examples/execinfo.c: Likewise.
|
||||||
|
* manual/examples/filecli.c: Likewise.
|
||||||
|
* manual/examples/filesrv.c: Likewise.
|
||||||
|
* manual/examples/fmtmsgexpl.c: Likewise.
|
||||||
|
* manual/examples/genpass.c: Likewise.
|
||||||
|
* manual/examples/inetcli.c: Likewise.
|
||||||
|
* manual/examples/inetsrv.c: Likewise.
|
||||||
|
* manual/examples/isockad.c: Likewise.
|
||||||
|
* manual/examples/longopt.c: Likewise.
|
||||||
|
* manual/examples/memopen.c: Likewise.
|
||||||
|
* manual/examples/memstrm.c: Likewise.
|
||||||
|
* manual/examples/mkfsock.c: Likewise.
|
||||||
|
* manual/examples/mkisock.c: Likewise.
|
||||||
|
* manual/examples/mygetpass.c: Likewise.
|
||||||
|
* manual/examples/pipe.c: Likewise.
|
||||||
|
* manual/examples/popen.c: Likewise.
|
||||||
|
* manual/examples/rprintf.c: Likewise.
|
||||||
|
* manual/examples/search.c: Likewise.
|
||||||
|
* manual/examples/select.c: Likewise.
|
||||||
|
* manual/examples/setjmp.c: Likewise.
|
||||||
|
* manual/examples/sigh1.c: Likewise.
|
||||||
|
* manual/examples/sigusr.c: Likewise.
|
||||||
|
* manual/examples/stpcpy.c: Likewise.
|
||||||
|
* manual/examples/strdupa.c: Likewise.
|
||||||
|
* manual/examples/strftim.c: Likewise.
|
||||||
|
* manual/examples/strncat.c: Likewise.
|
||||||
|
* manual/examples/subopt.c: Likewise.
|
||||||
|
* manual/examples/swapcontext.c: Likewise.
|
||||||
|
* manual/examples/termios.c: Likewise.
|
||||||
|
* manual/examples/testopt.c: Likewise.
|
||||||
|
* manual/examples/testpass.c: Likewise.
|
||||||
|
* manual/examples/timeval_subtract.c: Likewise.
|
||||||
|
|
||||||
[BZ #13792]
|
[BZ #13792]
|
||||||
* manual/time.texi (Elapsed Time): Move timeval_subtract example
|
* manual/time.texi (Elapsed Time): Move timeval_subtract example
|
||||||
function to ...
|
function to ...
|
||||||
|
@ -122,7 +122,8 @@ stamp-version: $(common-objpfx)config.make
|
|||||||
|
|
||||||
# Generate Texinfo files from the C source for the example programs.
|
# Generate Texinfo files from the C source for the example programs.
|
||||||
%.c.texi: examples/%.c
|
%.c.texi: examples/%.c
|
||||||
sed -e 's,[{}],@&,g' \
|
sed -e '1,/^\*\/$$/d' \
|
||||||
|
-e 's,[{}],@&,g' \
|
||||||
-e 's,/\*\(@.*\)\*/,\1,g' \
|
-e 's,/\*\(@.*\)\*/,\1,g' \
|
||||||
-e 's,/\* *,/* @r{,g' -e 's, *\*/,} */,' \
|
-e 's,/\* *,/* @r{,g' -e 's, *\*/,} */,' \
|
||||||
-e 's/\(@[a-z][a-z]*\)@{\([^}]*\)@}/\1{\2}/g'\
|
-e 's/\(@[a-z][a-z]*\)@{\([^}]*\)@}/\1{\2}/g'\
|
||||||
|
8
manual/examples/README
Normal file
8
manual/examples/README
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
These are source files for example code that appears in The GNU C
|
||||||
|
Library Reference Manual.
|
||||||
|
|
||||||
|
While the manual itself is licensed under the terms of the GNU Free
|
||||||
|
Documentation License, you can use these source files on their own
|
||||||
|
under the terms of the GNU General Public License as published by
|
||||||
|
the Free Software Foundation; version 2 of the License, or (at your
|
||||||
|
option) any later version.
|
@ -1,3 +1,20 @@
|
|||||||
|
/* Example of a Variadic Function
|
||||||
|
Copyright (C) 1991-2012 Free Software Foundation, Inc.
|
||||||
|
|
||||||
|
This program is free software; you can redistribute it and/or
|
||||||
|
modify it under the terms of the GNU General Public License
|
||||||
|
as published by the Free Software Foundation; either version 2
|
||||||
|
of the License, or (at your option) any later version.
|
||||||
|
|
||||||
|
This program is distributed in the hope that it will be useful,
|
||||||
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
GNU General Public License for more details.
|
||||||
|
|
||||||
|
You should have received a copy of the GNU General Public License
|
||||||
|
along with this program; if not, if not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
|
||||||
#include <stdarg.h>
|
#include <stdarg.h>
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
|
|
||||||
|
@ -1,4 +1,19 @@
|
|||||||
/* Argp example #1 -- a minimal program using argp */
|
/* Argp example #1 -- a minimal program using argp
|
||||||
|
Copyright (C) 1991-2012 Free Software Foundation, Inc.
|
||||||
|
|
||||||
|
This program is free software; you can redistribute it and/or
|
||||||
|
modify it under the terms of the GNU General Public License
|
||||||
|
as published by the Free Software Foundation; either version 2
|
||||||
|
of the License, or (at your option) any later version.
|
||||||
|
|
||||||
|
This program is distributed in the hope that it will be useful,
|
||||||
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
GNU General Public License for more details.
|
||||||
|
|
||||||
|
You should have received a copy of the GNU General Public License
|
||||||
|
along with this program; if not, if not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
|
||||||
/* This is (probably) the smallest possible program that
|
/* This is (probably) the smallest possible program that
|
||||||
uses argp. It won't do much except give an error
|
uses argp. It won't do much except give an error
|
||||||
|
@ -1,4 +1,19 @@
|
|||||||
/* Argp example #2 -- a pretty minimal program using argp */
|
/* Argp example #2 -- a pretty minimal program using argp
|
||||||
|
Copyright (C) 1991-2012 Free Software Foundation, Inc.
|
||||||
|
|
||||||
|
This program is free software; you can redistribute it and/or
|
||||||
|
modify it under the terms of the GNU General Public License
|
||||||
|
as published by the Free Software Foundation; either version 2
|
||||||
|
of the License, or (at your option) any later version.
|
||||||
|
|
||||||
|
This program is distributed in the hope that it will be useful,
|
||||||
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
GNU General Public License for more details.
|
||||||
|
|
||||||
|
You should have received a copy of the GNU General Public License
|
||||||
|
along with this program; if not, if not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
|
||||||
/* This program doesn't use any options or arguments, but uses
|
/* This program doesn't use any options or arguments, but uses
|
||||||
argp to be compliant with the GNU standard command line
|
argp to be compliant with the GNU standard command line
|
||||||
|
@ -1,4 +1,19 @@
|
|||||||
/* Argp example #3 -- a program with options and arguments using argp */
|
/* Argp example #3 -- a program with options and arguments using argp
|
||||||
|
Copyright (C) 1991-2012 Free Software Foundation, Inc.
|
||||||
|
|
||||||
|
This program is free software; you can redistribute it and/or
|
||||||
|
modify it under the terms of the GNU General Public License
|
||||||
|
as published by the Free Software Foundation; either version 2
|
||||||
|
of the License, or (at your option) any later version.
|
||||||
|
|
||||||
|
This program is distributed in the hope that it will be useful,
|
||||||
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
GNU General Public License for more details.
|
||||||
|
|
||||||
|
You should have received a copy of the GNU General Public License
|
||||||
|
along with this program; if not, if not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
|
||||||
/* This program uses the same features as example 2, and uses options and
|
/* This program uses the same features as example 2, and uses options and
|
||||||
arguments.
|
arguments.
|
||||||
|
@ -1,4 +1,19 @@
|
|||||||
/* Argp example #4 -- a program with somewhat more complicated options */
|
/* Argp example #4 -- a program with somewhat more complicated options
|
||||||
|
Copyright (C) 1991-2012 Free Software Foundation, Inc.
|
||||||
|
|
||||||
|
This program is free software; you can redistribute it and/or
|
||||||
|
modify it under the terms of the GNU General Public License
|
||||||
|
as published by the Free Software Foundation; either version 2
|
||||||
|
of the License, or (at your option) any later version.
|
||||||
|
|
||||||
|
This program is distributed in the hope that it will be useful,
|
||||||
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
GNU General Public License for more details.
|
||||||
|
|
||||||
|
You should have received a copy of the GNU General Public License
|
||||||
|
along with this program; if not, if not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
|
||||||
/* This program uses the same features as example 3, but has more
|
/* This program uses the same features as example 3, but has more
|
||||||
options, and somewhat more structure in the -help output. It
|
options, and somewhat more structure in the -help output. It
|
||||||
|
@ -1,7 +1,24 @@
|
|||||||
|
/* Cleanups on Exit
|
||||||
|
Copyright (C) 1991-2012 Free Software Foundation, Inc.
|
||||||
|
|
||||||
|
This program is free software; you can redistribute it and/or
|
||||||
|
modify it under the terms of the GNU General Public License
|
||||||
|
as published by the Free Software Foundation; either version 2
|
||||||
|
of the License, or (at your option) any later version.
|
||||||
|
|
||||||
|
This program is distributed in the hope that it will be useful,
|
||||||
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
GNU General Public License for more details.
|
||||||
|
|
||||||
|
You should have received a copy of the GNU General Public License
|
||||||
|
along with this program; if not, if not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
|
|
||||||
void
|
void
|
||||||
bye (void)
|
bye (void)
|
||||||
{
|
{
|
||||||
puts ("Goodbye, cruel world....");
|
puts ("Goodbye, cruel world....");
|
||||||
|
@ -1,3 +1,20 @@
|
|||||||
|
/* User and Group Database Example
|
||||||
|
Copyright (C) 1991-2012 Free Software Foundation, Inc.
|
||||||
|
|
||||||
|
This program is free software; you can redistribute it and/or
|
||||||
|
modify it under the terms of the GNU General Public License
|
||||||
|
as published by the Free Software Foundation; either version 2
|
||||||
|
of the License, or (at your option) any later version.
|
||||||
|
|
||||||
|
This program is distributed in the hope that it will be useful,
|
||||||
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
GNU General Public License for more details.
|
||||||
|
|
||||||
|
You should have received a copy of the GNU General Public License
|
||||||
|
along with this program; if not, if not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
|
||||||
#include <grp.h>
|
#include <grp.h>
|
||||||
#include <pwd.h>
|
#include <pwd.h>
|
||||||
#include <sys/types.h>
|
#include <sys/types.h>
|
||||||
|
@ -1,3 +1,20 @@
|
|||||||
|
/* Simple Program to List a Directory
|
||||||
|
Copyright (C) 1991-2012 Free Software Foundation, Inc.
|
||||||
|
|
||||||
|
This program is free software; you can redistribute it and/or
|
||||||
|
modify it under the terms of the GNU General Public License
|
||||||
|
as published by the Free Software Foundation; either version 2
|
||||||
|
of the License, or (at your option) any later version.
|
||||||
|
|
||||||
|
This program is distributed in the hope that it will be useful,
|
||||||
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
GNU General Public License for more details.
|
||||||
|
|
||||||
|
You should have received a copy of the GNU General Public License
|
||||||
|
along with this program; if not, if not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
|
||||||
/*@group*/
|
/*@group*/
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <sys/types.h>
|
#include <sys/types.h>
|
||||||
|
@ -1,3 +1,20 @@
|
|||||||
|
/* Simple Program to List a Directory, Mark II
|
||||||
|
Copyright (C) 1991-2012 Free Software Foundation, Inc.
|
||||||
|
|
||||||
|
This program is free software; you can redistribute it and/or
|
||||||
|
modify it under the terms of the GNU General Public License
|
||||||
|
as published by the Free Software Foundation; either version 2
|
||||||
|
of the License, or (at your option) any later version.
|
||||||
|
|
||||||
|
This program is distributed in the hope that it will be useful,
|
||||||
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
GNU General Public License for more details.
|
||||||
|
|
||||||
|
You should have received a copy of the GNU General Public License
|
||||||
|
along with this program; if not, if not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
|
||||||
/*@group*/
|
/*@group*/
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <dirent.h>
|
#include <dirent.h>
|
||||||
|
@ -1,3 +1,20 @@
|
|||||||
|
/* Obtain a backtrace and print it.
|
||||||
|
Copyright (C) 1991-2012 Free Software Foundation, Inc.
|
||||||
|
|
||||||
|
This program is free software; you can redistribute it and/or
|
||||||
|
modify it under the terms of the GNU General Public License
|
||||||
|
as published by the Free Software Foundation; either version 2
|
||||||
|
of the License, or (at your option) any later version.
|
||||||
|
|
||||||
|
This program is distributed in the hope that it will be useful,
|
||||||
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
GNU General Public License for more details.
|
||||||
|
|
||||||
|
You should have received a copy of the GNU General Public License
|
||||||
|
along with this program; if not, if not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
|
||||||
#include <execinfo.h>
|
#include <execinfo.h>
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
|
@ -1,3 +1,20 @@
|
|||||||
|
/* Example of Reading Datagrams
|
||||||
|
Copyright (C) 1991-2012 Free Software Foundation, Inc.
|
||||||
|
|
||||||
|
This program is free software; you can redistribute it and/or
|
||||||
|
modify it under the terms of the GNU General Public License
|
||||||
|
as published by the Free Software Foundation; either version 2
|
||||||
|
of the License, or (at your option) any later version.
|
||||||
|
|
||||||
|
This program is distributed in the hope that it will be useful,
|
||||||
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
GNU General Public License for more details.
|
||||||
|
|
||||||
|
You should have received a copy of the GNU General Public License
|
||||||
|
along with this program; if not, if not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <errno.h>
|
#include <errno.h>
|
||||||
#include <unistd.h>
|
#include <unistd.h>
|
||||||
|
@ -1,3 +1,20 @@
|
|||||||
|
/* Datagram Socket Example
|
||||||
|
Copyright (C) 1991-2012 Free Software Foundation, Inc.
|
||||||
|
|
||||||
|
This program is free software; you can redistribute it and/or
|
||||||
|
modify it under the terms of the GNU General Public License
|
||||||
|
as published by the Free Software Foundation; either version 2
|
||||||
|
of the License, or (at your option) any later version.
|
||||||
|
|
||||||
|
This program is distributed in the hope that it will be useful,
|
||||||
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
GNU General Public License for more details.
|
||||||
|
|
||||||
|
You should have received a copy of the GNU General Public License
|
||||||
|
along with this program; if not, if not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <errno.h>
|
#include <errno.h>
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
|
@ -1,3 +1,20 @@
|
|||||||
|
/* How to use fmtmsg and addseverity.
|
||||||
|
Copyright (C) 1991-2012 Free Software Foundation, Inc.
|
||||||
|
|
||||||
|
This program is free software; you can redistribute it and/or
|
||||||
|
modify it under the terms of the GNU General Public License
|
||||||
|
as published by the Free Software Foundation; either version 2
|
||||||
|
of the License, or (at your option) any later version.
|
||||||
|
|
||||||
|
This program is distributed in the hope that it will be useful,
|
||||||
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
GNU General Public License for more details.
|
||||||
|
|
||||||
|
You should have received a copy of the GNU General Public License
|
||||||
|
along with this program; if not, if not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
|
||||||
#include <fmtmsg.h>
|
#include <fmtmsg.h>
|
||||||
|
|
||||||
int
|
int
|
||||||
|
@ -1,31 +1,48 @@
|
|||||||
|
/* Encrypting Passwords
|
||||||
|
Copyright (C) 1991-2012 Free Software Foundation, Inc.
|
||||||
|
|
||||||
|
This program is free software; you can redistribute it and/or
|
||||||
|
modify it under the terms of the GNU General Public License
|
||||||
|
as published by the Free Software Foundation; either version 2
|
||||||
|
of the License, or (at your option) any later version.
|
||||||
|
|
||||||
|
This program is distributed in the hope that it will be useful,
|
||||||
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
GNU General Public License for more details.
|
||||||
|
|
||||||
|
You should have received a copy of the GNU General Public License
|
||||||
|
along with this program; if not, if not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <time.h>
|
#include <time.h>
|
||||||
#include <unistd.h>
|
#include <unistd.h>
|
||||||
#include <crypt.h>
|
#include <crypt.h>
|
||||||
|
|
||||||
int
|
int
|
||||||
main(void)
|
main(void)
|
||||||
{
|
{
|
||||||
unsigned long seed[2];
|
unsigned long seed[2];
|
||||||
char salt[] = "$1$........";
|
char salt[] = "$1$........";
|
||||||
const char *const seedchars =
|
const char *const seedchars =
|
||||||
"./0123456789ABCDEFGHIJKLMNOPQRST"
|
"./0123456789ABCDEFGHIJKLMNOPQRST"
|
||||||
"UVWXYZabcdefghijklmnopqrstuvwxyz";
|
"UVWXYZabcdefghijklmnopqrstuvwxyz";
|
||||||
char *password;
|
char *password;
|
||||||
int i;
|
int i;
|
||||||
|
|
||||||
/* Generate a (not very) random seed.
|
/* Generate a (not very) random seed.
|
||||||
You should do it better than this... */
|
You should do it better than this... */
|
||||||
seed[0] = time(NULL);
|
seed[0] = time(NULL);
|
||||||
seed[1] = getpid() ^ (seed[0] >> 14 & 0x30000);
|
seed[1] = getpid() ^ (seed[0] >> 14 & 0x30000);
|
||||||
|
|
||||||
/* Turn it into printable characters from `seedchars'. */
|
/* Turn it into printable characters from `seedchars'. */
|
||||||
for (i = 0; i < 8; i++)
|
for (i = 0; i < 8; i++)
|
||||||
salt[3+i] = seedchars[(seed[i/5] >> (i%5)*6) & 0x3f];
|
salt[3+i] = seedchars[(seed[i/5] >> (i%5)*6) & 0x3f];
|
||||||
|
|
||||||
/* Read in the user's password and encrypt it. */
|
/* Read in the user's password and encrypt it. */
|
||||||
password = crypt(getpass("Password:"), salt);
|
password = crypt(getpass("Password:"), salt);
|
||||||
|
|
||||||
/* Print the results. */
|
/* Print the results. */
|
||||||
puts(password);
|
puts(password);
|
||||||
return 0;
|
return 0;
|
||||||
|
@ -1,3 +1,20 @@
|
|||||||
|
/* Byte Stream Socket Example
|
||||||
|
Copyright (C) 1991-2012 Free Software Foundation, Inc.
|
||||||
|
|
||||||
|
This program is free software; you can redistribute it and/or
|
||||||
|
modify it under the terms of the GNU General Public License
|
||||||
|
as published by the Free Software Foundation; either version 2
|
||||||
|
of the License, or (at your option) any later version.
|
||||||
|
|
||||||
|
This program is distributed in the hope that it will be useful,
|
||||||
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
GNU General Public License for more details.
|
||||||
|
|
||||||
|
You should have received a copy of the GNU General Public License
|
||||||
|
along with this program; if not, if not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <errno.h>
|
#include <errno.h>
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
@ -11,7 +28,7 @@
|
|||||||
#define MESSAGE "Yow!!! Are we having fun yet?!?"
|
#define MESSAGE "Yow!!! Are we having fun yet?!?"
|
||||||
#define SERVERHOST "mescaline.gnu.org"
|
#define SERVERHOST "mescaline.gnu.org"
|
||||||
|
|
||||||
void
|
void
|
||||||
write_to_server (int filedes)
|
write_to_server (int filedes)
|
||||||
{
|
{
|
||||||
int nbytes;
|
int nbytes;
|
||||||
|
@ -1,3 +1,20 @@
|
|||||||
|
/* Byte Stream Connection Server Example
|
||||||
|
Copyright (C) 1991-2012 Free Software Foundation, Inc.
|
||||||
|
|
||||||
|
This program is free software; you can redistribute it and/or
|
||||||
|
modify it under the terms of the GNU General Public License
|
||||||
|
as published by the Free Software Foundation; either version 2
|
||||||
|
of the License, or (at your option) any later version.
|
||||||
|
|
||||||
|
This program is distributed in the hope that it will be useful,
|
||||||
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
GNU General Public License for more details.
|
||||||
|
|
||||||
|
You should have received a copy of the GNU General Public License
|
||||||
|
along with this program; if not, if not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <errno.h>
|
#include <errno.h>
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
|
@ -1,10 +1,27 @@
|
|||||||
|
/* Internet Socket Example using sockaddr_in.
|
||||||
|
Copyright (C) 1991-2012 Free Software Foundation, Inc.
|
||||||
|
|
||||||
|
This program is free software; you can redistribute it and/or
|
||||||
|
modify it under the terms of the GNU General Public License
|
||||||
|
as published by the Free Software Foundation; either version 2
|
||||||
|
of the License, or (at your option) any later version.
|
||||||
|
|
||||||
|
This program is distributed in the hope that it will be useful,
|
||||||
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
GNU General Public License for more details.
|
||||||
|
|
||||||
|
You should have received a copy of the GNU General Public License
|
||||||
|
along with this program; if not, if not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
#include <sys/socket.h>
|
#include <sys/socket.h>
|
||||||
#include <netinet/in.h>
|
#include <netinet/in.h>
|
||||||
#include <netdb.h>
|
#include <netdb.h>
|
||||||
|
|
||||||
void
|
void
|
||||||
init_sockaddr (struct sockaddr_in *name,
|
init_sockaddr (struct sockaddr_in *name,
|
||||||
const char *hostname,
|
const char *hostname,
|
||||||
uint16_t port)
|
uint16_t port)
|
||||||
@ -14,7 +31,7 @@ init_sockaddr (struct sockaddr_in *name,
|
|||||||
name->sin_family = AF_INET;
|
name->sin_family = AF_INET;
|
||||||
name->sin_port = htons (port);
|
name->sin_port = htons (port);
|
||||||
hostinfo = gethostbyname (hostname);
|
hostinfo = gethostbyname (hostname);
|
||||||
if (hostinfo == NULL)
|
if (hostinfo == NULL)
|
||||||
{
|
{
|
||||||
fprintf (stderr, "Unknown host %s.\n", hostname);
|
fprintf (stderr, "Unknown host %s.\n", hostname);
|
||||||
exit (EXIT_FAILURE);
|
exit (EXIT_FAILURE);
|
||||||
|
@ -1,3 +1,20 @@
|
|||||||
|
/* Example of Parsing Long Options with getopt_long.
|
||||||
|
Copyright (C) 1991-2012 Free Software Foundation, Inc.
|
||||||
|
|
||||||
|
This program is free software; you can redistribute it and/or
|
||||||
|
modify it under the terms of the GNU General Public License
|
||||||
|
as published by the Free Software Foundation; either version 2
|
||||||
|
of the License, or (at your option) any later version.
|
||||||
|
|
||||||
|
This program is distributed in the hope that it will be useful,
|
||||||
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
GNU General Public License for more details.
|
||||||
|
|
||||||
|
You should have received a copy of the GNU General Public License
|
||||||
|
along with this program; if not, if not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
#include <getopt.h>
|
#include <getopt.h>
|
||||||
|
@ -1,3 +1,20 @@
|
|||||||
|
/* String Streams
|
||||||
|
Copyright (C) 1991-2012 Free Software Foundation, Inc.
|
||||||
|
|
||||||
|
This program is free software; you can redistribute it and/or
|
||||||
|
modify it under the terms of the GNU General Public License
|
||||||
|
as published by the Free Software Foundation; either version 2
|
||||||
|
of the License, or (at your option) any later version.
|
||||||
|
|
||||||
|
This program is distributed in the hope that it will be useful,
|
||||||
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
GNU General Public License for more details.
|
||||||
|
|
||||||
|
You should have received a copy of the GNU General Public License
|
||||||
|
along with this program; if not, if not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
|
|
||||||
static char buffer[] = "foobar";
|
static char buffer[] = "foobar";
|
||||||
|
@ -1,3 +1,20 @@
|
|||||||
|
/* open_memstream example.
|
||||||
|
Copyright (C) 1991-2012 Free Software Foundation, Inc.
|
||||||
|
|
||||||
|
This program is free software; you can redistribute it and/or
|
||||||
|
modify it under the terms of the GNU General Public License
|
||||||
|
as published by the Free Software Foundation; either version 2
|
||||||
|
of the License, or (at your option) any later version.
|
||||||
|
|
||||||
|
This program is distributed in the hope that it will be useful,
|
||||||
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
GNU General Public License for more details.
|
||||||
|
|
||||||
|
You should have received a copy of the GNU General Public License
|
||||||
|
along with this program; if not, if not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
|
|
||||||
int
|
int
|
||||||
|
@ -1,3 +1,20 @@
|
|||||||
|
/* Example of Local-Namespace Sockets
|
||||||
|
Copyright (C) 1991-2012 Free Software Foundation, Inc.
|
||||||
|
|
||||||
|
This program is free software; you can redistribute it and/or
|
||||||
|
modify it under the terms of the GNU General Public License
|
||||||
|
as published by the Free Software Foundation; either version 2
|
||||||
|
of the License, or (at your option) any later version.
|
||||||
|
|
||||||
|
This program is distributed in the hope that it will be useful,
|
||||||
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
GNU General Public License for more details.
|
||||||
|
|
||||||
|
You should have received a copy of the GNU General Public License
|
||||||
|
along with this program; if not, if not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
|
||||||
#include <stddef.h>
|
#include <stddef.h>
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <errno.h>
|
#include <errno.h>
|
||||||
|
@ -1,9 +1,26 @@
|
|||||||
|
/* Internet Socket Example
|
||||||
|
Copyright (C) 1991-2012 Free Software Foundation, Inc.
|
||||||
|
|
||||||
|
This program is free software; you can redistribute it and/or
|
||||||
|
modify it under the terms of the GNU General Public License
|
||||||
|
as published by the Free Software Foundation; either version 2
|
||||||
|
of the License, or (at your option) any later version.
|
||||||
|
|
||||||
|
This program is distributed in the hope that it will be useful,
|
||||||
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
GNU General Public License for more details.
|
||||||
|
|
||||||
|
You should have received a copy of the GNU General Public License
|
||||||
|
along with this program; if not, if not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
#include <sys/socket.h>
|
#include <sys/socket.h>
|
||||||
#include <netinet/in.h>
|
#include <netinet/in.h>
|
||||||
|
|
||||||
int
|
int
|
||||||
make_socket (uint16_t port)
|
make_socket (uint16_t port)
|
||||||
{
|
{
|
||||||
int sock;
|
int sock;
|
||||||
|
@ -1,3 +1,20 @@
|
|||||||
|
/* Reading Passwords
|
||||||
|
Copyright (C) 1991-2012 Free Software Foundation, Inc.
|
||||||
|
|
||||||
|
This program is free software; you can redistribute it and/or
|
||||||
|
modify it under the terms of the GNU General Public License
|
||||||
|
as published by the Free Software Foundation; either version 2
|
||||||
|
of the License, or (at your option) any later version.
|
||||||
|
|
||||||
|
This program is distributed in the hope that it will be useful,
|
||||||
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
GNU General Public License for more details.
|
||||||
|
|
||||||
|
You should have received a copy of the GNU General Public License
|
||||||
|
along with this program; if not, if not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
|
||||||
#include <termios.h>
|
#include <termios.h>
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
|
|
||||||
@ -14,12 +31,12 @@ my_getpass (char **lineptr, size_t *n, FILE *stream)
|
|||||||
new.c_lflag &= ~ECHO;
|
new.c_lflag &= ~ECHO;
|
||||||
if (tcsetattr (fileno (stream), TCSAFLUSH, &new) != 0)
|
if (tcsetattr (fileno (stream), TCSAFLUSH, &new) != 0)
|
||||||
return -1;
|
return -1;
|
||||||
|
|
||||||
/* Read the password. */
|
/* Read the password. */
|
||||||
nread = getline (lineptr, n, stream);
|
nread = getline (lineptr, n, stream);
|
||||||
|
|
||||||
/* Restore terminal. */
|
/* Restore terminal. */
|
||||||
(void) tcsetattr (fileno (stream), TCSAFLUSH, &old);
|
(void) tcsetattr (fileno (stream), TCSAFLUSH, &old);
|
||||||
|
|
||||||
return nread;
|
return nread;
|
||||||
}
|
}
|
||||||
|
@ -1,3 +1,20 @@
|
|||||||
|
/* Creating a Pipe
|
||||||
|
Copyright (C) 1991-2012 Free Software Foundation, Inc.
|
||||||
|
|
||||||
|
This program is free software; you can redistribute it and/or
|
||||||
|
modify it under the terms of the GNU General Public License
|
||||||
|
as published by the Free Software Foundation; either version 2
|
||||||
|
of the License, or (at your option) any later version.
|
||||||
|
|
||||||
|
This program is distributed in the hope that it will be useful,
|
||||||
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
GNU General Public License for more details.
|
||||||
|
|
||||||
|
You should have received a copy of the GNU General Public License
|
||||||
|
along with this program; if not, if not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
|
||||||
#include <sys/types.h>
|
#include <sys/types.h>
|
||||||
#include <unistd.h>
|
#include <unistd.h>
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
|
@ -1,3 +1,20 @@
|
|||||||
|
/* Pipe to a Subprocess
|
||||||
|
Copyright (C) 1991-2012 Free Software Foundation, Inc.
|
||||||
|
|
||||||
|
This program is free software; you can redistribute it and/or
|
||||||
|
modify it under the terms of the GNU General Public License
|
||||||
|
as published by the Free Software Foundation; either version 2
|
||||||
|
of the License, or (at your option) any later version.
|
||||||
|
|
||||||
|
This program is distributed in the hope that it will be useful,
|
||||||
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
GNU General Public License for more details.
|
||||||
|
|
||||||
|
You should have received a copy of the GNU General Public License
|
||||||
|
along with this program; if not, if not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
|
|
||||||
|
@ -1,3 +1,20 @@
|
|||||||
|
/* Printf Extension Example
|
||||||
|
Copyright (C) 1991-2012 Free Software Foundation, Inc.
|
||||||
|
|
||||||
|
This program is free software; you can redistribute it and/or
|
||||||
|
modify it under the terms of the GNU General Public License
|
||||||
|
as published by the Free Software Foundation; either version 2
|
||||||
|
of the License, or (at your option) any later version.
|
||||||
|
|
||||||
|
This program is distributed in the hope that it will be useful,
|
||||||
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
GNU General Public License for more details.
|
||||||
|
|
||||||
|
You should have received a copy of the GNU General Public License
|
||||||
|
along with this program; if not, if not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
#include <printf.h>
|
#include <printf.h>
|
||||||
|
@ -1,3 +1,20 @@
|
|||||||
|
/* Searching and Sorting Example
|
||||||
|
Copyright (C) 1991-2012 Free Software Foundation, Inc.
|
||||||
|
|
||||||
|
This program is free software; you can redistribute it and/or
|
||||||
|
modify it under the terms of the GNU General Public License
|
||||||
|
as published by the Free Software Foundation; either version 2
|
||||||
|
of the License, or (at your option) any later version.
|
||||||
|
|
||||||
|
This program is distributed in the hope that it will be useful,
|
||||||
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
GNU General Public License for more details.
|
||||||
|
|
||||||
|
You should have received a copy of the GNU General Public License
|
||||||
|
along with this program; if not, if not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
@ -35,7 +52,7 @@ int count = sizeof (muppets) / sizeof (struct critter);
|
|||||||
|
|
||||||
/* This is the comparison function used for sorting and searching. */
|
/* This is the comparison function used for sorting and searching. */
|
||||||
|
|
||||||
int
|
int
|
||||||
critter_cmp (const struct critter *c1, const struct critter *c2)
|
critter_cmp (const struct critter *c1, const struct critter *c2)
|
||||||
{
|
{
|
||||||
return strcmp (c1->name, c2->name);
|
return strcmp (c1->name, c2->name);
|
||||||
@ -44,7 +61,7 @@ critter_cmp (const struct critter *c1, const struct critter *c2)
|
|||||||
|
|
||||||
/* Print information about a critter. */
|
/* Print information about a critter. */
|
||||||
|
|
||||||
void
|
void
|
||||||
print_critter (const struct critter *c)
|
print_critter (const struct critter *c)
|
||||||
{
|
{
|
||||||
printf ("%s, the %s\n", c->name, c->species);
|
printf ("%s, the %s\n", c->name, c->species);
|
||||||
@ -54,7 +71,7 @@ print_critter (const struct critter *c)
|
|||||||
/*@group*/
|
/*@group*/
|
||||||
/* Do the lookup into the sorted array. */
|
/* Do the lookup into the sorted array. */
|
||||||
|
|
||||||
void
|
void
|
||||||
find_critter (const char *name)
|
find_critter (const char *name)
|
||||||
{
|
{
|
||||||
struct critter target, *result;
|
struct critter target, *result;
|
||||||
|
@ -1,3 +1,20 @@
|
|||||||
|
/* Waiting for Input or Output
|
||||||
|
Copyright (C) 1991-2012 Free Software Foundation, Inc.
|
||||||
|
|
||||||
|
This program is free software; you can redistribute it and/or
|
||||||
|
modify it under the terms of the GNU General Public License
|
||||||
|
as published by the Free Software Foundation; either version 2
|
||||||
|
of the License, or (at your option) any later version.
|
||||||
|
|
||||||
|
This program is distributed in the hope that it will be useful,
|
||||||
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
GNU General Public License for more details.
|
||||||
|
|
||||||
|
You should have received a copy of the GNU General Public License
|
||||||
|
along with this program; if not, if not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
|
||||||
/*@group*/
|
/*@group*/
|
||||||
#include <errno.h>
|
#include <errno.h>
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
|
@ -1,10 +1,27 @@
|
|||||||
|
/* Introduction to Non-Local Exits
|
||||||
|
Copyright (C) 1991-2012 Free Software Foundation, Inc.
|
||||||
|
|
||||||
|
This program is free software; you can redistribute it and/or
|
||||||
|
modify it under the terms of the GNU General Public License
|
||||||
|
as published by the Free Software Foundation; either version 2
|
||||||
|
of the License, or (at your option) any later version.
|
||||||
|
|
||||||
|
This program is distributed in the hope that it will be useful,
|
||||||
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
GNU General Public License for more details.
|
||||||
|
|
||||||
|
You should have received a copy of the GNU General Public License
|
||||||
|
along with this program; if not, if not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
|
||||||
#include <setjmp.h>
|
#include <setjmp.h>
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
|
|
||||||
jmp_buf main_loop;
|
jmp_buf main_loop;
|
||||||
|
|
||||||
void
|
void
|
||||||
abort_to_main_loop (int status)
|
abort_to_main_loop (int status)
|
||||||
{
|
{
|
||||||
longjmp (main_loop, status);
|
longjmp (main_loop, status);
|
||||||
@ -21,7 +38,7 @@ main (void)
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void
|
void
|
||||||
do_command (void)
|
do_command (void)
|
||||||
{
|
{
|
||||||
char buffer[128];
|
char buffer[128];
|
||||||
|
@ -1,3 +1,20 @@
|
|||||||
|
/* Signal Handlers that Return
|
||||||
|
Copyright (C) 1991-2012 Free Software Foundation, Inc.
|
||||||
|
|
||||||
|
This program is free software; you can redistribute it and/or
|
||||||
|
modify it under the terms of the GNU General Public License
|
||||||
|
as published by the Free Software Foundation; either version 2
|
||||||
|
of the License, or (at your option) any later version.
|
||||||
|
|
||||||
|
This program is distributed in the hope that it will be useful,
|
||||||
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
GNU General Public License for more details.
|
||||||
|
|
||||||
|
You should have received a copy of the GNU General Public License
|
||||||
|
along with this program; if not, if not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
|
||||||
#include <signal.h>
|
#include <signal.h>
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
@ -6,14 +23,14 @@
|
|||||||
volatile sig_atomic_t keep_going = 1;
|
volatile sig_atomic_t keep_going = 1;
|
||||||
|
|
||||||
/* The signal handler just clears the flag and re-enables itself. */
|
/* The signal handler just clears the flag and re-enables itself. */
|
||||||
void
|
void
|
||||||
catch_alarm (int sig)
|
catch_alarm (int sig)
|
||||||
{
|
{
|
||||||
keep_going = 0;
|
keep_going = 0;
|
||||||
signal (sig, catch_alarm);
|
signal (sig, catch_alarm);
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
do_stuff (void)
|
do_stuff (void)
|
||||||
{
|
{
|
||||||
puts ("Doing stuff while waiting for alarm....");
|
puts ("Doing stuff while waiting for alarm....");
|
||||||
|
@ -1,3 +1,20 @@
|
|||||||
|
/* Using kill for Communication
|
||||||
|
Copyright (C) 1991-2012 Free Software Foundation, Inc.
|
||||||
|
|
||||||
|
This program is free software; you can redistribute it and/or
|
||||||
|
modify it under the terms of the GNU General Public License
|
||||||
|
as published by the Free Software Foundation; either version 2
|
||||||
|
of the License, or (at your option) any later version.
|
||||||
|
|
||||||
|
This program is distributed in the hope that it will be useful,
|
||||||
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
GNU General Public License for more details.
|
||||||
|
|
||||||
|
You should have received a copy of the GNU General Public License
|
||||||
|
along with this program; if not, if not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
|
||||||
/*@group*/
|
/*@group*/
|
||||||
#include <signal.h>
|
#include <signal.h>
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
@ -8,14 +25,14 @@
|
|||||||
/* When a @code{SIGUSR1} signal arrives, set this variable. */
|
/* When a @code{SIGUSR1} signal arrives, set this variable. */
|
||||||
volatile sig_atomic_t usr_interrupt = 0;
|
volatile sig_atomic_t usr_interrupt = 0;
|
||||||
|
|
||||||
void
|
void
|
||||||
synch_signal (int sig)
|
synch_signal (int sig)
|
||||||
{
|
{
|
||||||
usr_interrupt = 1;
|
usr_interrupt = 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* The child process executes this function. */
|
/* The child process executes this function. */
|
||||||
void
|
void
|
||||||
child_function (void)
|
child_function (void)
|
||||||
{
|
{
|
||||||
/* Perform initialization. */
|
/* Perform initialization. */
|
||||||
|
@ -1,3 +1,20 @@
|
|||||||
|
/* stpcpy example.
|
||||||
|
Copyright (C) 1991-2012 Free Software Foundation, Inc.
|
||||||
|
|
||||||
|
This program is free software; you can redistribute it and/or
|
||||||
|
modify it under the terms of the GNU General Public License
|
||||||
|
as published by the Free Software Foundation; either version 2
|
||||||
|
of the License, or (at your option) any later version.
|
||||||
|
|
||||||
|
This program is distributed in the hope that it will be useful,
|
||||||
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
GNU General Public License for more details.
|
||||||
|
|
||||||
|
You should have received a copy of the GNU General Public License
|
||||||
|
along with this program; if not, if not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
|
|
||||||
|
@ -1,3 +1,20 @@
|
|||||||
|
/* strdupa example.
|
||||||
|
Copyright (C) 1991-2012 Free Software Foundation, Inc.
|
||||||
|
|
||||||
|
This program is free software; you can redistribute it and/or
|
||||||
|
modify it under the terms of the GNU General Public License
|
||||||
|
as published by the Free Software Foundation; either version 2
|
||||||
|
of the License, or (at your option) any later version.
|
||||||
|
|
||||||
|
This program is distributed in the hope that it will be useful,
|
||||||
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
GNU General Public License for more details.
|
||||||
|
|
||||||
|
You should have received a copy of the GNU General Public License
|
||||||
|
along with this program; if not, if not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
|
||||||
#include <paths.h>
|
#include <paths.h>
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
|
@ -1,3 +1,20 @@
|
|||||||
|
/* Time Functions Example
|
||||||
|
Copyright (C) 1991-2012 Free Software Foundation, Inc.
|
||||||
|
|
||||||
|
This program is free software; you can redistribute it and/or
|
||||||
|
modify it under the terms of the GNU General Public License
|
||||||
|
as published by the Free Software Foundation; either version 2
|
||||||
|
of the License, or (at your option) any later version.
|
||||||
|
|
||||||
|
This program is distributed in the hope that it will be useful,
|
||||||
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
GNU General Public License for more details.
|
||||||
|
|
||||||
|
You should have received a copy of the GNU General Public License
|
||||||
|
along with this program; if not, if not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
|
||||||
#include <time.h>
|
#include <time.h>
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
|
|
||||||
|
@ -1,3 +1,20 @@
|
|||||||
|
/* strncat example.
|
||||||
|
Copyright (C) 1991-2012 Free Software Foundation, Inc.
|
||||||
|
|
||||||
|
This program is free software; you can redistribute it and/or
|
||||||
|
modify it under the terms of the GNU General Public License
|
||||||
|
as published by the Free Software Foundation; either version 2
|
||||||
|
of the License, or (at your option) any later version.
|
||||||
|
|
||||||
|
This program is distributed in the hope that it will be useful,
|
||||||
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
GNU General Public License for more details.
|
||||||
|
|
||||||
|
You should have received a copy of the GNU General Public License
|
||||||
|
along with this program; if not, if not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
|
|
||||||
|
@ -1,3 +1,20 @@
|
|||||||
|
/* Parsing of Suboptions Example
|
||||||
|
Copyright (C) 1991-2012 Free Software Foundation, Inc.
|
||||||
|
|
||||||
|
This program is free software; you can redistribute it and/or
|
||||||
|
modify it under the terms of the GNU General Public License
|
||||||
|
as published by the Free Software Foundation; either version 2
|
||||||
|
of the License, or (at your option) any later version.
|
||||||
|
|
||||||
|
This program is distributed in the hope that it will be useful,
|
||||||
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
GNU General Public License for more details.
|
||||||
|
|
||||||
|
You should have received a copy of the GNU General Public License
|
||||||
|
along with this program; if not, if not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
#include <unistd.h>
|
#include <unistd.h>
|
||||||
|
@ -1,3 +1,20 @@
|
|||||||
|
/* Complete Context Control
|
||||||
|
Copyright (C) 1991-2012 Free Software Foundation, Inc.
|
||||||
|
|
||||||
|
This program is free software; you can redistribute it and/or
|
||||||
|
modify it under the terms of the GNU General Public License
|
||||||
|
as published by the Free Software Foundation; either version 2
|
||||||
|
of the License, or (at your option) any later version.
|
||||||
|
|
||||||
|
This program is distributed in the hope that it will be useful,
|
||||||
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
GNU General Public License for more details.
|
||||||
|
|
||||||
|
You should have received a copy of the GNU General Public License
|
||||||
|
along with this program; if not, if not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
|
||||||
#include <signal.h>
|
#include <signal.h>
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
|
@ -1,3 +1,20 @@
|
|||||||
|
/* Noncanonical Mode Example
|
||||||
|
Copyright (C) 1991-2012 Free Software Foundation, Inc.
|
||||||
|
|
||||||
|
This program is free software; you can redistribute it and/or
|
||||||
|
modify it under the terms of the GNU General Public License
|
||||||
|
as published by the Free Software Foundation; either version 2
|
||||||
|
of the License, or (at your option) any later version.
|
||||||
|
|
||||||
|
This program is distributed in the hope that it will be useful,
|
||||||
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
GNU General Public License for more details.
|
||||||
|
|
||||||
|
You should have received a copy of the GNU General Public License
|
||||||
|
along with this program; if not, if not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
|
||||||
#include <unistd.h>
|
#include <unistd.h>
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
@ -7,13 +24,13 @@
|
|||||||
|
|
||||||
struct termios saved_attributes;
|
struct termios saved_attributes;
|
||||||
|
|
||||||
void
|
void
|
||||||
reset_input_mode (void)
|
reset_input_mode (void)
|
||||||
{
|
{
|
||||||
tcsetattr (STDIN_FILENO, TCSANOW, &saved_attributes);
|
tcsetattr (STDIN_FILENO, TCSANOW, &saved_attributes);
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
set_input_mode (void)
|
set_input_mode (void)
|
||||||
{
|
{
|
||||||
struct termios tattr;
|
struct termios tattr;
|
||||||
|
@ -1,3 +1,20 @@
|
|||||||
|
/* Example of Parsing Arguments with getopt.
|
||||||
|
Copyright (C) 1991-2012 Free Software Foundation, Inc.
|
||||||
|
|
||||||
|
This program is free software; you can redistribute it and/or
|
||||||
|
modify it under the terms of the GNU General Public License
|
||||||
|
as published by the Free Software Foundation; either version 2
|
||||||
|
of the License, or (at your option) any later version.
|
||||||
|
|
||||||
|
This program is distributed in the hope that it will be useful,
|
||||||
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
GNU General Public License for more details.
|
||||||
|
|
||||||
|
You should have received a copy of the GNU General Public License
|
||||||
|
along with this program; if not, if not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
|
||||||
/*@group*/
|
/*@group*/
|
||||||
#include <ctype.h>
|
#include <ctype.h>
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
|
@ -1,9 +1,26 @@
|
|||||||
|
/* Verify a password.
|
||||||
|
Copyright (C) 1991-2012 Free Software Foundation, Inc.
|
||||||
|
|
||||||
|
This program is free software; you can redistribute it and/or
|
||||||
|
modify it under the terms of the GNU General Public License
|
||||||
|
as published by the Free Software Foundation; either version 2
|
||||||
|
of the License, or (at your option) any later version.
|
||||||
|
|
||||||
|
This program is distributed in the hope that it will be useful,
|
||||||
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
GNU General Public License for more details.
|
||||||
|
|
||||||
|
You should have received a copy of the GNU General Public License
|
||||||
|
along with this program; if not, if not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
#include <unistd.h>
|
#include <unistd.h>
|
||||||
#include <crypt.h>
|
#include <crypt.h>
|
||||||
|
|
||||||
int
|
int
|
||||||
main(void)
|
main(void)
|
||||||
{
|
{
|
||||||
/* Hashed form of "GNU libc manual". */
|
/* Hashed form of "GNU libc manual". */
|
||||||
@ -11,7 +28,7 @@ main(void)
|
|||||||
|
|
||||||
char *result;
|
char *result;
|
||||||
int ok;
|
int ok;
|
||||||
|
|
||||||
/*@group*/
|
/*@group*/
|
||||||
/* Read in the user's password and encrypt it,
|
/* Read in the user's password and encrypt it,
|
||||||
passing the expected password in as the salt. */
|
passing the expected password in as the salt. */
|
||||||
|
@ -1,3 +1,20 @@
|
|||||||
|
/* struct timeval subtraction.
|
||||||
|
Copyright (C) 1991-2012 Free Software Foundation, Inc.
|
||||||
|
|
||||||
|
This program is free software; you can redistribute it and/or
|
||||||
|
modify it under the terms of the GNU General Public License
|
||||||
|
as published by the Free Software Foundation; either version 2
|
||||||
|
of the License, or (at your option) any later version.
|
||||||
|
|
||||||
|
This program is distributed in the hope that it will be useful,
|
||||||
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
GNU General Public License for more details.
|
||||||
|
|
||||||
|
You should have received a copy of the GNU General Public License
|
||||||
|
along with this program; if not, if not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
|
||||||
/* Subtract the `struct timeval' values X and Y,
|
/* Subtract the `struct timeval' values X and Y,
|
||||||
storing the result in RESULT.
|
storing the result in RESULT.
|
||||||
Return 1 if the difference is negative, otherwise 0. */
|
Return 1 if the difference is negative, otherwise 0. */
|
||||||
|
Reference in New Issue
Block a user