Linux-Development-Sys Digest #800, Volume #7     Tue, 25 Apr 00 12:15:17 EDT

Contents:
  implicit declaration error (std::cout)
  Re: =?iso-8859-1?Q?Unregelm=E4=DFiger?= Verbindungsabbau mit kppp (Anders Larsen)
  Re: File questions (Alan Donovan)
  Re: MS caught breaking web sites (Robin)
  Re: Two really easy (I'm sure) questions (Stephen Richards)
  Re: MICROSOFT IT THRU!  MICROSOFT IS THRU! (Alun Jones)
  Re: MS caught breaking web sites (Alun Jones)
  Re: serial/parallel port programming... (std::cout)
  Re: implicit declaration error (std::cout)
  EPSON Stylus Color 400 Drivers (Pipegeek)
  Help! Compile device driver (Le Wen)
  Re: Any validating XML Parsers? ([EMAIL PROTECTED])

----------------------------------------------------------------------------

Subject: implicit declaration error
From: std::cout <[EMAIL PROTECTED]>
Date: Tue, 25 Apr 2000 06:00:06 -0700

I have excellent luck getting answers from this group, so here
goes again...

I have just updated my SuSE 6.1 system to SuSE 6.4 and I have
broken something relating to <unistd.h> I think, or perhaps I
have some compiler switches incorrectly turned on.

I have always been getting a "implicit declaration of 'int ioperm
(...)'" warning when compiling my C++ program that reads from a
parallel port.  It has always just been an warning, and has
successfully compiled.

However, now with my new gcc compiler (and its corresponding new
libraries) I am getting this same warning, but it is a fatal
error - Error 1 - and stops further compilation.  Any ideas what
compiler switches I need to turn off to get this thing to
compile without warning?

Thanks!
Stuart

* Sent from RemarQ http://www.remarq.com The Internet's Discussion Network *
The fastest and easiest way to search and participate in Usenet - Free!


------------------------------

From: Anders Larsen <[EMAIL PROTECTED]>
Crossposted-To: comp.os.linux.networking
Subject: Re: =?iso-8859-1?Q?Unregelm=E4=DFiger?= Verbindungsabbau mit kppp
Date: Tue, 25 Apr 2000 14:34:16 +0200

"Bj=F6rn" wrote:
> =

> Hallo,
> ich m=F6chte meine verbindung=B4(isdn) zu meinem provider =FCber kppp a=
ufbauen.
> die verbindung wird auch aufgebaut, aber nach unregelm=E4=DFigen abst=E4=
nden,
> zwischen 30 sek. und 2 min, wird die verbindung wieder unterbrochen. de=
r
> pppd meldet:
> --------------------------------------------------------------
> Apr  8 17:44:57 bjoern pppd[3340]: pppd 2.3.5 started by root, uid 0
> Apr  8 17:44:57 bjoern pppd[3340]: Using interface ppp0
> Apr  8 17:44:57 bjoern pppd[3340]: Connect: ppp0 <--> /dev/ttyI0
> Apr  8 17:44:57 bjoern pppd[3340]: sent [LCP ConfReq id=3D0x1 <asyncmap=
 0x0>
> <magic 0x717c56b4> <pcomp> <accomp>]
> Apr  8 17:45:00 bjoern pppd[3340]: sent [LCP ConfReq id=3D0x1 <asyncmap=
 0x0>
> <magic 0x717c56b4> <pcomp> <accomp>]
> Apr  8 17:45:00 bjoern pppd[3340]: rcvd [LCP ConfReq id=3D0x1 < 00 04 0=
0 00>
> <mru 1524> <asyncmap 0xa0000> <auth chap 05> <pcomp> <accomp> < 11 04 0=
5 f4>
> < 13 0b 01 53 54 41 43 4b 2d 4d 45>]
> Apr  8 17:45:00 bjoern pppd[3340]: sent [LCP ConfRej id=3D0x1 < 00 04 0=
0 00> <
> 11 04 05 f4> < 13 0b 01 53 54 41 43 4b 2d 4d 45>]
> Apr  8 17:45:00 bjoern pppd[3340]: rcvd [LCP ConfAck id=3D0x1 <asyncmap=
 0x0>
> <magic 0x717c56b4> <pcomp> <accomp>]
> Apr  8 17:45:00 bjoern pppd[3340]: rcvd [LCP ConfReq id=3D0x2 <mru 1524=
>
> <asyncmap 0xa0000> <auth chap 05> <pcomp> <accomp>]
> Apr  8 17:45:00 bjoern pppd[3340]: sent [LCP ConfNak id=3D0x2 <auth pap=
>]
> Apr  8 17:45:00 bjoern pppd[3340]: rcvd [LCP ConfReq id=3D0x3 <mru 1524=
>
> <asyncmap 0xa0000> <auth pap> <pcomp> <accomp>]
> Apr  8 17:45:00 bjoern pppd[3340]: sent [LCP ConfAck id=3D0x3 <mru 1524=
>
> <asyncmap 0xa0000> <auth pap> <pcomp> <accomp>]
> Apr  8 17:45:00 bjoern pppd[3340]: sent [PAP AuthReq id=3D0x1
> user=3D"XXXXXXXXXXXXXXXXXXXXXXX" password=3D"XXXXXXXXXXXX"]
> Apr  8 17:45:00 bjoern pppd[3340]: rcvd [PAP AuthAck id=3D0x1 ""]
> Apr  8 17:45:00 bjoern pppd[3340]: Remote message:
> Apr  8 17:45:00 bjoern pppd[3340]: sent [IPCP ConfReq id=3D0x1 <addr 0.=
0.0.0>]
> Apr  8 17:45:00 bjoern pppd[3340]: rcvd [IPCP ConfReq id=3D0x1 <compres=
s VJ 0f
> 01> <addr 139.4.112.165>]
> Apr  8 17:45:00 bjoern pppd[3340]: sent [IPCP ConfRej id=3D0x1 <compres=
s VJ 0f
> 01>]
> Apr  8 17:45:00 bjoern pppd[3340]: rcvd [IPCP ConfNak id=3D0x1 <addr
> 149.225.63.75>]
> Apr  8 17:45:00 bjoern pppd[3340]: sent [IPCP ConfReq id=3D0x2 <addr
> 149.225.63.75>]
> Apr  8 17:45:00 bjoern pppd[3340]: rcvd [IPCP ConfReq id=3D0x2 <addr
> 139.4.112.165>]
> Apr  8 17:45:00 bjoern pppd[3340]: sent [IPCP ConfNak id=3D0x2 <addr
> 192.168.0.1>]
> Apr  8 17:45:00 bjoern pppd[3340]: rcvd [IPCP ConfAck id=3D0x2 <addr
> 149.225.63.75>]
> Apr  8 17:45:00 bjoern pppd[3340]: rcvd [IPCP ConfReq id=3D0x3 <addr
> 192.168.0.1>]
> Apr  8 17:45:00 bjoern pppd[3340]: sent [IPCP ConfAck id=3D0x3 <addr
> 192.168.0.1>]
> Apr  8 17:45:00 bjoern pppd[3340]: local  IP address 149.225.63.75
> Apr  8 17:45:00 bjoern pppd[3340]: remote IP address 192.168.0.1
> Apr  8 17:45:22 bjoern pppd[3340]: Hangup (SIGHUP)
> Apr  8 17:45:22 bjoern pppd[3340]: Modem hangup
> Apr  8 17:45:22 bjoern pppd[3340]: Connection terminated.
> Apr  8 17:45:22 bjoern pppd[3340]: Exit.
> --------------------------------------------------------------
> es ist wahrscheinlich nicht die idle time, da die verbindung unregelm=E4=
ssig
> getrennt wird.
> es ist auch egal, ob ich daten =FCber die leitung schicke oder nicht.
> wenn ich die verbindung =FCber =FCber yast, mit ippp0 realisiere bleibt=
 die
> verbindung bestehen.
> ich hoffe das ihr mir helfen k=F6nnt.

Do you get any data transferred at all?

Your ppp looks a bit misconfigured:
- copy or rename your /etc/ppp/pap-secrets to /etc/ppp/chap-secrets so yo=
u
can use CHAP/MD5 authentification (and stop sending your password in clea=
r
over the line)
- somewhere in your ppp options you mandate the IP address of the peer
(192.168.0.1). You shouldn't, as this may cause trouble.

BTW, (a) this is an English language newsgroup, and (b) your question is =
more
appropriately placed in comp.os.linux.networking (follow-up set)

--
Cheers
  Anders Larsen
e-mail: alarsen AT baumerident DOT com
#exclude <windows.h>

------------------------------

From: Alan Donovan <[EMAIL PROTECTED]>
Subject: Re: File questions
Date: Tue, 25 Apr 2000 14:39:28 +0100

John Jacques wrote:

> What is the max # of files per directory? I plan on having literally
> millions of 1K files per directory if it is possible.

The limit is huge (2^31 blocks of directory data, I guess) but you will
hit the maximum number of inodes for the volume long before that. Also
directory searches will become incredibly slow. And if your disk block
size is not used exactly, you will waste an *awful* lot of space.

This is not a good design. The Windows NT registry is an example of a
more lightweight filesystem/database; without wishing to comment on the
way that it becomes a dustbin for every available bit of data, it is one
approach to solving your problem: create a database that merges many
small files together into one larger "actual" (as far as the FS is
concerned) file.


> I read somewhere a while back that for every 47 files per directory the
> read/writes for that directory double. Is this true?

Hmmmm. I've not heard that and I can't think of a good reason why it
should be. It's entirely possible that some actual-usage pattern survey
revealed that. I'm not sure it's a particularly useful figure.


> If a file is read once is it kept in RAM until it gets updated or
> flushed by the kernel? For example if I read 100 1K files will they be
> kept in RAM, or are they read from the disk each time? I'm thinking the
> files are read and kept in "buffers" when we use the "free" command??

The OS uses the "buffer cache" to hold pages of recently used files
along the general principles of caching. In fact you can think of the PC
as one great cascade of cached information, from CPU registers, to
onboard cache, to L2 cache, and RAM, to disk. Pages of memory and/or
disk files migrate up and down this cascade depending on their usage
patterns.

Thus pages of frequently used files are stored in RAM (note "pages":
granularity is 4KB on x86). The OS takes care of flushing.



If you could supply a bit more info about what you need literally
millions of files for, then perhaps we can be more helpful as to
alternate storage and access strategies.

alan



-- 
========================================================================
  Alan Donovan     [EMAIL PROTECTED]    http://www.imerge.co.uk
  Imerge Ltd.      +44 1223 875265

------------------------------

From: Robin <[EMAIL PROTECTED]>
Crossposted-To: 
comp.os.linux.advocacy,comp.os.ms-windows.advocacy,comp.os.ms-windows.nt.advocacy,comp.os.linux.networking,comp.os.linux.security,comp.os.ms-windows.networking.tcp-ip
Subject: Re: MS caught breaking web sites
Date: Tue, 25 Apr 2000 10:47:19 -0400

Mike Marion wrote:

> Robin wrote:
>
>
> > everybody calls when they can't get their machine to work right" I'd recommend NT
> > over 9x (no 2000 experience yet) to a home user in a heartbeat.
>
> Unless playing any recent game is desired.

Eh, my husband plays 'em successfully under NT.  Age of Empires, and a few others.





------------------------------

From: Stephen Richards <[EMAIL PROTECTED]>
Crossposted-To: comp.os.linux.development,comp.os.linux.development.apps
Subject: Re: Two really easy (I'm sure) questions
Date: Tue, 25 Apr 2000 15:24:12 +0100
Reply-To: Stephen Richards <[EMAIL PROTECTED]>

In article <8dvqno$tei$[EMAIL PROTECTED]>, M Sweger
<[EMAIL PROTECTED]> writes
>Sang Yong Lee ([EMAIL PROTECTED]) wrote:
>
>: Tandem Guy wrote:
>
>: > Hello.  I've recently installed Linux and am trying to do some C++
>: > programming and have a couple of questions.
>: >
>: > First question:  I'm trying to compile the following code:
>: >
>: > BEGIN CODE
>: >
>: > #include <iostream.h>
>: >
>: > int
>: > main( )
>: > {
>: >     cout << "Hello World\n";
>: >     return 0;
>: > }
>: >
>: > END CODE
>: >
>: > This code is in the file hello.cc and I'm issuing the following command:
>: >
>: > gcc hello.cc
>
>: g++ hello.cc
>
>: >
>: >
>: > The compiler spits back the following errors:
>: >
>: > /tmp/cc.JqnaTp.o: In function 'main':
>: > /tmp/ccJqnaTp.o(.text+0x9): undefine reference to 'cout'
>: > /tmp/ccJqnaTp.o(.text+0xe): undefined reference to
>: > 'ostream::operator<<(char const *)'
>: > collect2: Id returned 1 exit status
>: >
>: > What am I doing wrong.  I'm dying to see Hello World on my screen and I
>: > can't make it happen :)
>: >

Looks to me that you are missing libg++.so or libg++.a from /usr/lib.
g++ is 'supposed to bring it in' that is why I think it is missing.

You could explicitly try 'g++ hello.cc -lg++' 

If it complains that it cannot find libg++, look for the library in gnu
c compiler distribution.  

If all else fails reinstall gnuc, as it probably wasn't a clean install.

|-----------------------------\\-----------------------|
|  Stephen Richards            \\   SAR Computing Ltd  |
|  [EMAIL PROTECTED]      \\                     |
|________________________________\\____________________|

------------------------------

From: [EMAIL PROTECTED] (Alun Jones)
Crossposted-To: 
comp.os.linux.advocacy,comp.os.ms-windows.advocacy,comp.os.ms-windows.nt.advocacy,comp.os.linux.networking,comp.os.linux.security,comp.os.ms-windows.networking.tcp-ip,alt.conspiracy.area51
Subject: Re: MICROSOFT IT THRU!  MICROSOFT IS THRU!
Date: Tue, 25 Apr 2000 15:25:33 GMT

In article <[EMAIL PROTECTED]>, Sean LeBlanc 
<[EMAIL PROTECTED]> wrote:
> 
> Or run listdlls.exe.

Does that catch DLLs loaded through the LoadLibrary call, or only those that 
are listed in the dependencies?

Alun.
~~~~

--
Texas Imperial Software | Try WFTPD, the Windows FTP Server. Find us
1602 Harvest Moon Place | at web site http://www.wftpd.com or email
Cedar Park TX 78613     | us at [EMAIL PROTECTED]  VISA / MC accepted.
Fax +1 (512) 378 3246   | NT-based ISPs, be sure to read details of
Phone +1 (512) 378 3246 | WFTPD Pro, NT service version - $100.

------------------------------

From: [EMAIL PROTECTED] (Alun Jones)
Crossposted-To: 
comp.os.linux.advocacy,comp.os.ms-windows.advocacy,comp.os.ms-windows.nt.advocacy,comp.os.linux.networking,comp.os.linux.security,comp.os.ms-windows.networking.tcp-ip
Subject: Re: MS caught breaking web sites
Date: Tue, 25 Apr 2000 15:25:37 GMT

In article <[EMAIL PROTECTED]>, [EMAIL PROTECTED] wrote:
> 
> 
> Jianmang Li wrote:
> > 
> > Gary Connors wrote:
> > >
> > > in article [EMAIL PROTECTED], laugh at [EMAIL PROTECTED] wrote
>  on
> > > 4/16/00 1:07 AM:
> > >
> > > > Robert,
> > >
> > > > And with Linux growing to 35% of all servers and 10% of desktops this
>  year
> > > > alone
> > > > (half of those being NT replacements), there won't be much of an
>  audience
> > > > for any future releases of windows when and if they do make it out.
> > >
> > > If its a "NT replacement" is not on the desktop.  In the real world, NT is
> > > not a desktop OS.
> > I'm always puzzled when people calling Desktop and server. From software
> > point of view, what is the different. MS had difficulties to let Windows9x
> > offering network services so it call it Desktop. In Unix world, if you got
>  the
> > right hardware nobody stop you offering network services from your "Desktop"
>  -
> > they are the same.
> 
> Because people from Microsoft land can't imagine the peer-peer model.

I'd say there's a fair level of support in Microsoft's OSs since '95 for 
peer-peer model - it looks like they can imagine more than you're aware of.  
Perhaps if you spent less time building a screen full of signature for a 
one-line throwaway remark, and more time paying attention to the operating 
system whose newsgroups you're cross-pisting to, you might actually have 
something to contribute.

I can't say that I'm Microsoft's biggest fan, but please, if you're going to 
attack Microsoft, at least attack them for their true, provable, 
shortcomings, rather than just rolling out the same tired old rumours and 
jokes.  Otherwise you sound like you're just jumping on the big boy because 
he presents such a huge target.

HAND.

Alun.
~~~~

--
Texas Imperial Software | Try WFTPD, the Windows FTP Server. Find us
1602 Harvest Moon Place | at web site http://www.wftpd.com or email
Cedar Park TX 78613     | us at [EMAIL PROTECTED]  VISA / MC accepted.
Fax +1 (512) 378 3246   | NT-based ISPs, be sure to read details of
Phone +1 (512) 378 3246 | WFTPD Pro, NT service version - $100.

------------------------------

Subject: Re: serial/parallel port programming...
From: std::cout <[EMAIL PROTECTED]>
Date: Tue, 25 Apr 2000 08:33:27 -0700

In article <[EMAIL PROTECTED]>, "Luke Bond"
<[EMAIL PROTECTED]> wrote:
>hi all,
>
>i'm beginning a project for which i want to develop a little
circuit with
>some switches and buttons and dials, etc. and connect it up to
the serial or
>parallel port to use the components as triggers for part of my
program.

I have just finished most of my program to use the parallel
port.  It was really quite easy, although I did not have any
voltage connected to the parallel port (just optical sensors).

There is a mini-HOWTO out there regarding I/O port programming
for LInux.

>what i'm wondering is: am i better off using the serial or
parallel port?

Parallel port for ease of use.  Serial port for better timing
accuracy.



* Sent from RemarQ http://www.remarq.com The Internet's Discussion Network *
The fastest and easiest way to search and participate in Usenet - Free!


------------------------------

Subject: Re: implicit declaration error
From: std::cout <[EMAIL PROTECTED]>
Date: Tue, 25 Apr 2000 08:34:38 -0700

In article <[EMAIL PROTECTED]>,
std::cout <[EMAIL PROTECTED]> wrote:
>I have always been getting a "implicit declaration of 'int
ioperm
>(...)'" warning when compiling my C++ program that reads from a
>parallel port.  It has always just been an warning, and has
>successfully compiled.
>

Got my answer from a very helpful person on the SuSE email
list.  I was including <unistd.h> when I should have been
including <sys/io.h>

Thanks,
Stuart

* Sent from RemarQ http://www.remarq.com The Internet's Discussion Network *
The fastest and easiest way to search and participate in Usenet - Free!


------------------------------

From: [EMAIL PROTECTED] (Pipegeek)
Subject: EPSON Stylus Color 400 Drivers
Date: 25 Apr 2000 15:40:22 GMT

Hi.  I am new to this group, and to Linux.  I am lowest of the low, vilest of
the vile- worst than a script kiddie- I actually use Windows 98 (shoot me
please).  I am intent on getting rid of it, but I know very little about Linux
(read: nothing).  I intend to take courses, but that can't do everything.  But,
needless to say, I am in no shape to write drivers for my printer.  Has anyone
else?  This is, as written in the subject, an EPSON Stylus Color 400, connected
to a parallel port.  I intend on buying Corel Linux (for simplicity's sake),
and can't find any mention of my printer in their "supported hardware" Acrobat
file.  So if anyone could give me a hand, any help would be appreciated.

PTR
======================
"I love California.  I practically grew up in Phoenix." -Dan Quayle
Protect privacy, boycott Intel: http://www.bigbrotherinside.org
========================================
[EMAIL PROTECTED]
ICQ: 53338265
==============

------------------------------

From: Le Wen <[EMAIL PROTECTED]>
Reply-To: [EMAIL PROTECTED]
Subject: Help! Compile device driver
Date: Tue, 25 Apr 2000 11:44:14 -0400

Hello, there,

I am learning to write device driver and found some examples in the
net. I tried one of them. But got over hundreds error messages during
the complie. If anyone here can help me? Thank you in advance!

Under Mandrake 7.0 (2.2.14)
to make the following code,

# Makefile for a basic kernel module

CC=gcc
MODCFLAGS := -O6 -Wall -DCONFIG_KERNELD -DMODULE -D__KERNEL__ -DLINUX

chardev.o: chardev.c /usr/include/linux/version.h
$(CC) $(MODCFLAGS) -c chardev.c

/* chardev.c
* Copyright (C) 1998-1999 by Ori Pomerantz
*
* Create a character device (read only)
*/

#include < linux/kernel.h >
#include < linux/module.h >
#if CONFIG_MODVERSIONS==1

#define MODVERSIONS
#include < linux/modversions.h >
#endif

#include < linux/fs.h >
#ifndef KERNEL_VERSION
#define KERNEL_VERSION(a,b,c) ((a)*65536+(b)*256+(c))
#endif

#if LINUX_VERSION_CODE > KERNEL_VERSION(2,2,0)
#include < asm/uaccess.h > /* for put_user */
#endif

#define SUCCESS 0
#define DEVICE_NAME "char_dev"
#define BUF_LEN 80
static int Device_Open = 0;
static char Message[BUF_LEN];
static char *Message_Ptr;
static int device_open(struct inode *inode,
struct file *file)
{
static int counter = 0;

#ifdef DEBUG
printk ("device_open(%p,%p)\n", inode, file);
#endif

printk("Device: %d.%d\n",
inode->i_rdev >> 8, inode->i_rdev & 0xFF);

if (Device_Open)
return -EBUSY;

Device_Open++;

sprintf(Message,
"If I told you once, I told you %d times - %s",
counter++,
"Hello, world\n");

Message_Ptr = Message;

MOD_INC_USE_COUNT;

return SUCCESS;
}
#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,2,0)
static int device_release(struct inode *inode,
struct file *file)
#else
static void device_release(struct inode *inode,
struct file *file)
#endif
{
#ifdef DEBUG
printk ("device_release(%p,%p)\n", inode, file);
#endif

Device_Open --;

MOD_DEC_USE_COUNT;

#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,2,0)
return 0;
#endif
}


#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,2,0)
static ssize_t device_read(struct file *file,
char *buffer,
size_t length,
loff_t *offset)
#else
static int device_read(struct inode *inode,
struct file *file,
char *buffer,
int length)
#endif
{
int bytes_read = 0;

if (*Message_Ptr == 0)
return 0;

while (length && *Message_Ptr) {

put_user(*(Message_Ptr++), buffer++);

length --;
bytes_read ++;
}

#ifdef DEBUG
printk ("Read %d bytes, %d left\n",
bytes_read, length);
#endif

return bytes_read;
}
#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,2,0)
static ssize_t device_write(struct file *file,
const char *buffer,
size_t length,
loff_t *offset)
#else
static int device_write(struct inode *inode,
struct file *file,
const char *buffer,
int length)
#endif
{
return -EINVAL;
}

static int Major;

struct file_operations Fops = {
NULL, /* seek */
device_read,
device_write,
NULL, /* readdir */
NULL, /* select */
NULL, /* ioctl */
NULL, /* mmap */
device_open,
#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,2,0)
NULL, /* flush */
#endif
device_release /* a.k.a. close */
};


int init_module()
{
Major = module_register_chrdev(0,
DEVICE_NAME,
&Fops);

if (Major < 0) {
printk ("%s device failed with %d\n",
"Sorry, registering the character",
Major);
return Major;
}

printk ("%s The major device number is %d.\n",
"Registeration is a success.",
Major);
printk ("If you want to talk to the device driver,\n");
printk ("you'll have to create a device file. \n");
printk ("We suggest you use:\n");
printk ("mknod c %d \n", Major);
printk ("You can try different minor numbers %s",
"and see what happens.\n");

return 0;
}


void cleanup_module()
{
int ret;

ret = module_unregister_chrdev(Major, DEVICE_NAME);

if (ret < 0)
printk("Error in unregister_chrdev: %d\n", ret);
}



Errors:

[root@ws46 02_chardev]# make
gcc -O6 -Wall -DCONFIG_KERNELD -DMODULE -D__KERNEL__ -DLINUX -c
chardev.c
In file included from /usr/include/linux/fs.h:270,
from chardev.c:20:
/usr/include/linux/hpfs_fs_i.h:5: parse error before `ino_t'
/usr/include/linux/hpfs_fs_i.h:5: warning: no semicolon at end of struct

or union
/usr/include/linux/hpfs_fs_i.h:12: parse error before `:'
In file included from /usr/include/linux/fs.h:272,
from chardev.c:20:
/usr/include/linux/msdos_fs_i.h:36: parse error before `off_t'
/usr/include/linux/msdos_fs_i.h:36: warning: no semicolon at end of
struct or union
In file included from /usr/include/linux/fs.h:273,
from chardev.c:20:
/usr/include/linux/umsdos_fs_i.h:62: field `msdos_info' has incomplete
type
/usr/include/linux/umsdos_fs_i.h:69: parse error before `off_t'
/usr/include/linux/umsdos_fs_i.h:69: warning: no semicolon at end of
struct or union
/usr/include/linux/umsdos_fs_i.h:73: parse error before `}'
In file included from /usr/include/linux/fs.h:274,
from chardev.c:20:
/usr/include/linux/iso_fs_i.h:11: parse error before `off_t'
/usr/include/linux/iso_fs_i.h:11: warning: no semicolon at end of struct

or union
In file included from /usr/include/linux/affs_fs_i.h:5,
from /usr/include/linux/fs.h:277,
from chardev.c:20:
/usr/include/linux/time.h:10: parse error before `time_t'
/usr/include/linux/time.h:10: warning: no semicolon at end of struct or
union
/usr/include/linux/time.h:12: parse error before `}'
/usr/include/linux/time.h: In function `timespec_to_jiffies':
/usr/include/linux/time.h:32: dereferencing pointer to incomplete type
/usr/include/linux/time.h:33: dereferencing pointer to incomplete type
/usr/include/linux/time.h: In function `jiffies_to_timespec':
/usr/include/linux/time.h:45: dereferencing pointer to incomplete type
/usr/include/linux/time.h:46: dereferencing pointer to incomplete type
/usr/include/linux/time.h: At top level:
/usr/include/linux/time.h:50: parse error before `time_t'
/usr/include/linux/time.h:50: warning: no semicolon at end of struct or
union
/usr/include/linux/time.h:51: warning: data definition has no type or
storage class
/usr/include/linux/time.h:83: field `it_interval' has incomplete type
/usr/include/linux/time.h:84: field `it_value' has incomplete type
/usr/include/linux/time.h:88: field `it_interval' has incomplete type
/usr/include/linux/time.h:89: field `it_value' has incomplete type
In file included from /usr/include/linux/fs.h:277,
from chardev.c:20:
/usr/include/linux/affs_fs_i.h:11: field `kc_lru_time' has incomplete
type
In file included from /usr/include/linux/fs.h:279,
from chardev.c:20:
......





------------------------------

From: [EMAIL PROTECTED]
Subject: Re: Any validating XML Parsers?
Crossposted-To: comp.os.linux.development.apps
Date: Tue, 25 Apr 2000 16:08:11 GMT

In comp.os.linux.development.apps M Sweger <[EMAIL PROTECTED]> wrote:
> Will this tool validate the xml tree structure to insure that the tags appear
> in the order expected? Most validating parsers seem to make sure that:
> 1) there is a begin and end tag, 2) that the nested tags are ok i.e. has
> and end tag. But they don't make sure that  tags appear in a certain order.
> So if I have

No, a _validating_ parser insures that your document is a valid
instance of a DTD. End tag ommisions and tag order are only errors if
they're not allowed by the DTD. What you're discussing here is a
normalising, not validating. There's also a program with SP to do
that, but it's not what you asked for.

> What I'm trying to figure out is how they do the tree structure validation.
> SAX doesn't create a tree ( it is event based). Thus, one must create the
> tree which must be validated for structure. 

If you really want to know how it works, you should download SP and
read the developer's documentation with the library. You should also
consider ponying up some cash for a couple good books. In all honesty
though, I'm not sure you want to get that deep into it for various
reasons.

1. nsgmls is already an excellent validating parser. Probably quite a
bit more than anything you're likely to cook up yourself without
investing a couple years in the project.

2. The SP library that ships with nsgmls is a ready made api for
handling SGML. So if you want to write a library, it's again already
done.

3. nsgmls and friends all contain the standard options for outputting
in a machine-parsable representation. So, if you want to write perl
scripts like dtdtree.pl, the hard part is once again already done. ;)

That's not to say this isn't an area that needs alot of work in the
free sector. Just that alot of the gory low-level stuff is done. 

-- 
Matt Gauthier <[EMAIL PROTECTED]>

------------------------------


** FOR YOUR REFERENCE **

The service address, to which questions about the list itself and requests
to be added to or deleted from it should be directed, is:

    Internet: [EMAIL PROTECTED]

You can send mail to the entire list (and comp.os.linux.development.system) via:

    Internet: [EMAIL PROTECTED]

Linux may be obtained via one of these FTP sites:
    ftp.funet.fi                                pub/Linux
    tsx-11.mit.edu                              pub/linux
    sunsite.unc.edu                             pub/Linux

End of Linux-Development-System Digest
******************************

Reply via email to