From owner-freebsd-questions@FreeBSD.ORG Sun Feb 19 00:18:26 2006 Return-Path: X-Original-To: freebsd-questions@freebsd.org Delivered-To: freebsd-questions@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 65E8916A422 for ; Sun, 19 Feb 2006 00:18:26 +0000 (GMT) (envelope-from keramida@ceid.upatras.gr) Received: from igloo.linux.gr (igloo.linux.gr [62.1.205.36]) by mx1.FreeBSD.org (Postfix) with ESMTP id 92CA943D48 for ; Sun, 19 Feb 2006 00:18:24 +0000 (GMT) (envelope-from keramida@ceid.upatras.gr) Received: from flame.pc (dialup158.ach.sch.gr [81.186.70.158]) (authenticated bits=128) by igloo.linux.gr (8.13.5/8.13.5/Debian-3) with ESMTP id k1J0Hx6w016526 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NOT); Sun, 19 Feb 2006 02:18:06 +0200 Received: from flame.pc (flame [127.0.0.1]) by flame.pc (8.13.4/8.13.4) with ESMTP id k1J0HmRb062816; Sun, 19 Feb 2006 02:17:48 +0200 (EET) (envelope-from keramida@ceid.upatras.gr) Received: (from keramida@localhost) by flame.pc (8.13.4/8.13.4/Submit) id k1J0HmwG062815; Sun, 19 Feb 2006 02:17:48 +0200 (EET) (envelope-from keramida@ceid.upatras.gr) Date: Sun, 19 Feb 2006 02:17:48 +0200 From: Giorgos Keramidas To: Tom Grove Message-ID: <20060219001748.GA62793@flame.pc> References: <43F68C7D.9010403@voidmain.net> <1140233843.982.21.camel@chaucer.jeays.ca> <43F74361.90109@voidmain.net> <43F75DF6.3050903@mac.com> <43F75F3C.7080903@voidmain.net> <43F76296.4010407@mac.com> <43F784AA.50206@voidmain.net> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <43F784AA.50206@voidmain.net> X-Hellug-MailScanner: Found to be clean X-Hellug-MailScanner-SpamCheck: not spam, SpamAssassin (score=-3.387, required 5, autolearn=not spam, ALL_TRUSTED -1.80, AWL 0.81, BAYES_00 -2.60, DNS_FROM_RFC_ABUSE 0.20) X-Hellug-MailScanner-From: keramida@ceid.upatras.gr Cc: freebsd-questions@freebsd.org Subject: Re: getline function X-BeenThere: freebsd-questions@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: User questions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 19 Feb 2006 00:18:26 -0000 On 2006-02-18 15:33, Tom Grove wrote: >Chuck Swiger wrote: >>Tom Grove wrote: >>>Chuck Swiger wrote: >>[ ... ] >>>> getline() is not part of the standard C library. >>>> What makes you think gcc is broken...? >>> >>> Yeah...I see that after some more research. So, now I guess my question >>> is being that it's not standard and gets() is not safe to use what >>> should I use to grab lines? My gut tells me to copy the getline() >>> function from the K&R book but I'm not totally sure that's a great idea >>> either. Stupid strings always causing problems! >>> >> >> Depending on what you'd like to do, GNU readline may be a fine >> solution to your situation. Otherwise, getch(stdin) with a bit of >> code to "cook" DEL/BS/CR/NL, or just use the getline port as you've >> already done. :-) > > Okay...I think I'm either an idiot or going slowly insane. I'll admit > I'm not the most savvy C programmer but the following code gives me an > error: > > ## Source File## > #include > #include > #include > > int main() { > char *line; > > line = readline("Test: "); > > return 0; > } > ##Source File## > > ##Error## > /var/tmp//ccqxIZxQ.o(.text+0x25): In function `main': > : undefined reference to `readline' > ##Error## You're missing an ``-lreadline'' option at the end of your build command. You may be interested to know that the BSDs have editline(3) too, a command-line editing library that supports at least `some' of the GNU readline features, but is BSD-licensed: % man editline