Date: Mon, 26 Jan 2009 11:33:51 +0100 From: Hans Petter Selasky <hselasky@c2i.net> To: freebsd-hackers@freebsd.org Cc: Lukasz Jaroszewski <lvj@nietykalni.org> Subject: Re: write(2) to /dev/ad4 = EINVAL Message-ID: <200901261133.51924.hselasky@c2i.net> In-Reply-To: <3930e0780901260224ye4acbabx7a629ec8da195138@mail.gmail.com> References: <3930e0780901260135j1428e77fmfe7392770fcd31fc@mail.gmail.com> <200901261109.43376.hselasky@c2i.net> <3930e0780901260224ye4acbabx7a629ec8da195138@mail.gmail.com>
next in thread | previous in thread | raw e-mail | index | archive | help
On Monday 26 January 2009, Lukasz Jaroszewski wrote: > 2009/1/26 Hans Petter Selasky <hselasky@c2i.net>: > > On Monday 26 January 2009, Lukasz Jaroszewski wrote: > >> Hi, > >> after opening /dev/ad4 with success for O_RDWR, I am getting [EINVAL] > >> from write(2), which according to man 2 write, means > >> `` [EINVAL] The pointer associated with d was > >> negative.'', as you can see below it is not true, I have tried > >> different block sizes, with same result. > >> > >> How can I write one byte to /dev/adN ? > > > > Hi, > > > > You cannot write one byte to /dev/adN, I think. Harddisks are block > > based. Please see: > > > > diskinfo -v ad4 > > > > And especially the "sector size". When you seek and transfer data the > > offset and length must be a factor of the "sector size" or "block size". > > See also LBA, logical block address. > > Yes, I have tried with bs=512 and multiplies, no luck. > > root@~(0) diskinfo -v ad4 > ad4 > 512 # sectorsize > 2029805568 # mediasize in bytes (1.9G) > 3964464 # mediasize in sectors > 3933 # Cylinders according to firmware. > 16 # Heads according to firmware. > 63 # Sectors according to firmware. > ad:CFx20CARDx200000190C # Disk ident. > And if you add a "lseek(f, 0, SEEK_SET);" after open? --HPS
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200901261133.51924.hselasky>