Mailing-List: contact cygwin-help AT cygwin DOT com; run by ezmlm List-Subscribe: List-Archive: List-Post: List-Help: , Sender: cygwin-owner AT cygwin DOT com Mail-Followup-To: cygwin AT cygwin DOT com Delivered-To: mailing list cygwin AT cygwin DOT com Message-ID: <3F2691B2.10307@cs.york.ac.uk> Date: Tue, 29 Jul 2003 16:24:34 +0100 From: chris User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.0; en-US; rv:1.5b) Gecko/20030723 Thunderbird/0.1 X-Accept-Language: en-us, en MIME-Version: 1.0 To: cygwin AT cygwin DOT com Subject: Limit to size of pipe Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit X-Scanner: exiscan *19hWHb-0004vA-Tm*4Sad55u/kv2* Hello! Further to an earlier message I sent, I now attach an example. This tries to send a message of a fixed sized down a pipe. Under windows I can't seem to send much more than 25k down in one go, although I can send more if I chop it up into sections. Under linux however I can send as large amounts as I like. While it is possible to work around it, I thought I would mention it in case it was easy to fix, just no-one had requested it :) ------------ Example program follows: setting MSGSIZE>25000ish on my computer causes fail (ie pipeval=-1) ------------ #include #include #define MSGSIZE 23000 char *msg1 = "message"; void main(void) { char inbuf[MSGSIZE]; int p[2], j; int pid; if(pipe(p) == -1) exit(1); switch(pid = fork()){ case -1: exit(2); case 0: /* if child then write down pipe */ close(p[0]); /* first close the read end of the pipe */ write(p[1], msg1, MSGSIZE); break; default: /* parent reads pipe */ close(p[1]); /* first close the write end of the pipe */ int pipeval=read(p[0], inbuf, MSGSIZE); printf("pipeval:%d\n",pipeval); printf("Parent sent: %s\n", inbuf); wait(NULL); } } -- Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple Problem reports: http://cygwin.com/problems.html Documentation: http://cygwin.com/docs.html FAQ: http://cygwin.com/faq/