From owner-freebsd-hackers@FreeBSD.ORG Sat Feb 7 07:38:36 2004 Return-Path: Delivered-To: freebsd-hackers@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id D388916A4CE for ; Sat, 7 Feb 2004 07:38:36 -0800 (PST) Received: from cvs.freebsdchina.org (unknown [61.152.250.38]) by mx1.FreeBSD.org (Postfix) with SMTP id 66AC843D1D for ; Sat, 7 Feb 2004 07:38:33 -0800 (PST) (envelope-from airsupply@freebsdchina.org) Received: (qmail 39587 invoked by uid 0); 7 Feb 2004 15:38:30 -0000 Received: from unknown (HELO a1rsupp1y) (218.64.142.194) by cvs.freebsdchina.org with SMTP; 7 Feb 2004 15:38:30 -0000 From: "airsupply" To: freebsd-hackers@freebsd.org X-mailer: Foxmail 4.2 [cn] Mime-Version: 1.0 Content-Type: text/plain; charset="GB2312" Content-Transfer-Encoding: quoted-printable Date: Sat, 7 Feb 2004 23:37:31 +0800 Message-Id: <20040207153833.66AC843D1D@mx1.FreeBSD.org> X-Mailman-Approved-At: Sun, 08 Feb 2004 05:13:35 -0800 Subject: shmat help X-BeenThere: freebsd-hackers@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: Technical Discussions relating to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 07 Feb 2004 15:38:36 -0000 freebsd-hackers=A3=AC=C4=FA=BA=C3=A3=A1 =09 i am test shmat under freebsd 4.8 release(without undate),but a= piece of simple code wont work. code like this: #include #include #include #include #include #include #define SHM_KEY 100 #define SHM_SIZE 1024 int main(int argc,char *argv[]) { int shmid; void *shmaddr1,*shmaddr2,*shmaddr3; if(shmid=3Dshmget(SHM_KEY,SHM_SIZE,IPC_CREAT|0660)=3D=3D-1) { perror("shmget"); exit(-1); } printf("shmid: %d\n",shmid); if(shmaddr1=3Dshmat(shmid,0,0)=3D=3D-1) { perror("shmat 1"); exit(-1); } printf("shaddr1:0x%.8x\n",shmaddr1); if(shmaddr2=3Dshmat(shmid,0,0)=3D=3D-1) { perror("shmat 2"); exit(-1); } printf("shaddr2:0x%.8x\n",shmaddr2); while(1); return 0; } then i get error like this: shmid: 0 shmat 1: Invalid argument then i use ipcs,find that the shmid is not 0,but an integer= number. -bash-2.05b$ ipcs Message Queues: T ID KEY MODE OWNER GROUP Shared Memory: T ID KEY MODE OWNER GROUP m 65536 100 --rw-rw-rw- airs wheel Semaphores: T ID KEY MODE OWNER GROUP who can help me? who i can't use the shmid at shmat(shmid,0,0) ? = =A1=A1=A1=A1=A1=A1=A1=A1=A1=A1=A1=A1=A1=A1=A1=A1=D6=C2 =C0=F1=A3=A1 =09=09=09=09 =A1=A1=A1=A1=A1=A1=A1=A1=A1=A1=A1=A1=A1=A1=A1=A1airsupply =A1=A1=A1=A1=A1=A1=A1=A1=A1=A1=A1=A1=A1=A1=A1=A1airsupply@freebsdchina.org =A1=A1=A1=A1=A1=A1=A1=A1=A1=A1=A1=A1=A1=A1=A1=A1=A1=A1=A1=A12004-02-07