X-Spam-Check-By: sourceware.org To: cygwin AT cygwin DOT com From: "Eric Lilja" Subject: popen() fails after 256 successful calls Date: Sun, 2 Apr 2006 14:04:49 +0200 Lines: 652 Message-ID: X-IsSubscribed: yes 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 Hello, I have two directories, both with ~4k files in them. For each directory I needed to calculate a SHA1 checksum on each file and store them in a table and then do some comparisons. I wrote a C++ program for this but I noticed popen() (which I use to invoke sha1sum.exe to calculate the checksum) would fail after 256 successful calls with the error "Resource temporarily unavailable". I rewrote the program in pure C and kept just the directory scanning/popen() part and tried a few directories but still the same error. Attached is the source for the C program, Makefile to build it and cygcheck output. Also, when I tried the program on another directory, one that had a file with an & in the name, the program behaved weirdly, cutting of the name at the &. But that is a different, less urgent, problem. Any ideas on how I can debug this further? / E begin 666 Makefile.dat M0T,@/2!G8V,*0T9,04=3(#T@+5=A;&P@+5<@+6<@+4\P("UC"DQ$1DQ!1U,@ M/2 M;R D*$5814,I"D5814,@/2!P97)F;W)M7V-H96-K("0H3$1& M3$%'4RD*"B4N;SH@)2YC"@DD*$-#*2 D*$-&3$%'4RD@)#P*"F-L96%N DOT AT H) H6=W:6X AT 0V]N9FEG=7)A=&EO;B!$:6%G;F]S=&EC7-T96T AT 5&EM93H AT 4W5N($%P6=W:6Y<=7-R7&QO8V%L7&)I;@T*"4,Z M7&-Y9W=I;EQB:6X-"@E#.EQC>6=W:6Y<8FEN#0H)0SI<8WEG=VEN7'5S7-T96TS,@T*5VEN1&ER M.B!#.EQ724Y$3U=3#0H-"E5315(@/2 G;6EK865L)PT*4%=$(#T@)R]H;VUE M+VUI:V%E;"]C;V1I;F'9T+6-Y9W=I;BUN871I=F4G#0I04D]#15-33U)?241%3E1) M1DE%4B ]("=X.#8 AT 1F%M:6QY(#$U($UO9&5L(#0W(%-T97!P:6YG(#(L($%U M=&AE;G1I8T%-1"<-"E=)3D1)4B ]("=#.EQ724Y$3U=3)PT*5E,X,$-/34Y4 M3T],4R ]("=#.EQV:7-U86Q?'!M)PT*7R ]("6=C:&5C:R<-"E!/ M4TE83%E?0T]24D5#5" ]("6=N=7,@4V]L=71I;VYS#0I(2T597T-54E)%3E1?55-%4EQ3;V9T M=V%R95Q#>6=N=7,@4V]L=71I;VYS7$-Y9W=I;@T*2$M%65]#55)214Y47U53 M15)<4V]F='=A6=W:6Y<;6]U;G1S('8R M#0I(2T597T-54E)%3E1?55-%4EQ3;V9T=V%R95Q#>6=N=7,@4V]L=71I;VYS M7$-Y9W=I;EQ0'1S7"YC>6=N=7,-"DA+15E?0U524D5.5%]54T527%-O9G1W M87)E7$UI8W)O'1S7"YC>6=N=7-<3W!E;E=I=&A,:7-T#0I(2T597TQ/0T%,7TU! M0TA)3D5<4T]&5%=!4D5<0WEG;G5S(%-O;'5T:6]N6=W M:6Y<;6]U;G1S('8R#0H@("AD969A=6QT*2 ]("6=W:6XG#0H@(&9L86=S(#T@,'@P,# P M,# P80T*2$M%65],3T-!3%]-04-(24Y%7%-/1E1705)%7$-Y9VYU# P,# P,#!A#0I(2T59 M7TQ/0T%,7TU!0TA)3D5<4T]&5%=!4D5<0WEG;G5S(%-O;'5T:6]N6=W M:6Y<;6]U;G1S('8R7"]U6=W M:6XO;&EB)PT*("!F;&%G6=N=7,@4V]L=71I;VYS7$-Y9W=I;EQ07-T96T@(&)I;FUO9&4- M"D,Z7&-Y9W=I;B]B:6X@("]U6=W:6XO;&EB(" O=7-R+VQI8B @('-Y7-T96T@(&)I;FUO9&4L8WEG9')I M=F4-"@T*1F]U;F0Z($,Z7&-Y9W=I;EQB:6Y<87=K+F5X90T*1F]U;F0Z($,Z M7&-Y9W=I;EQB:6Y<8F%S:"YE>&4-"D9O=6YD.B!#.EQC>6=W:6Y<8FEN7&-A M="YE>&4-"D9O=6YD.B!#.EQC>6=W:6Y<8FEN7&-P+F5X90T*1F]U;F0Z($,Z M7&-Y9W=I;EQB:6Y<8W!P+F5X90T*3F]T($9O=6YD.B!C&4-"D9O=6YD.B!#.EQC>6=W:6Y< M8FEN7&MI;&PN97AE#0I&;W5N9#H AT 0SI<8WEG=VEN7&)I;EQL9"YE>&4-"D9O M=6YD.B!#.EQC>6=W:6Y<8FEN7&QS+F5X90T*1F]U;F0Z($,Z7&-Y9W=I;EQB M:6Y<;6%K92YE>&4-"D9O=6YD.B!#.EQC>6=W:6Y<8FEN7&UV+F5X90T*3F]T M($9O=6YD.B!P871C: T*1F]U;F0Z($,Z7&-Y9W=I;EQB:6Y<<&5R;"YE>&4- M"D9O=6YD.B!#.EQC>6=W:6Y<8FEN7')M+F5X90T*1F]U;F0Z($,Z7&-Y9W=I M;EQB:6Y<6=B>C(M,2YD;&P@+2!O7,]-"XP#0H@(" @(" @(" @(" @(" @(" B8WEG8GHR+3$N9&QL M(B!V,"XP('1S/3(P,#4O-R\Y(#6=C:&%R6=C;VUP9F%C92TP+F1L;" M(&]S/30N,"!I;6<] M,2XP('-Y6=C;VUP9F%C92TP M+F1L;"(@=C N,"!T6=W:6Y<8FEN7&-Y9V-R>7!T+3 N9&QL("T@;W,]-"XP(&EM M9STQ+C @7!T+3 N M9&QL(B!V,"XP('1S/3(P,#,O,3 O,3D AT DOT 3HU-PT*(#$Q,#AK(#(P,#4O,3 O M,3<@0SI<8WEG=VEN7&)I;EQC>6=C7!T M;RTP+CDN-RYD;&PB('8P+C @=',],C P-2\Q,"\Q-R Q,3HQ- AT T*(#$P-#=K M(#(P,#4O,3 O,3$@0SI<8WEG=VEN7&)I;EQC>6=C7!T;RTP+CDN."YD;&PB('8P+C @=',],C P-2\Q,"\Q,2 Q-#HT M-PT*(" X.35K(#(P,#0O,#0O,C@@0SI<8WEG=VEN7&)I;EQC>6=D8BTT+C(N M9&QL("T@;W,]-"XP(&EM9STQ+C @6=E>'!A="TP M+F1L;" M(&]S/30N,"!I;6<],2XP('-Y6=E>'!A="TP+F1L;"(@=C N,"!T6=W:6Y<8FEN7&-Y9V9O;G1C;VYF M:67,]-"XP#0H@(" @(" @(" @ M(" @(" @(" B8WEG9F]N=&-O;F9I9RTQ+F1L;"(@=C N,"!T6=F M;W)M+3 AT N9&QL("T@;W,]-"XP(&EM9STQ+C @6=F6=F6=W:6Y<8FEN7&-Y9V=D8FTM,RYD;&P@+2!O7,]-"XP#0H@(" @(" @(" @(" @(" @(" B8WEG9V1B;2TS+F1L;"(@ M=C N,"!T6=G9&)M+30N9&QL("T@;W,]-"XP(&EM9STQ+C @6=W:6Y<8FEN7&-Y9V=L:6(M,2TR+3 N9&QL("T@;W,]-"XP(&EM M9STQ+C @6=W:6Y<8FEN7&-Y9V=M;V1U;&4M,2TR+3 N9&QL("T@;W,] M-"XP(&EM9STQ+C @6=W:6Y<8FEN7&-Y9V=M<"TS+F1L;" M(&]S M/30N,"!I;6<],2XP('-Y6=G M;7 M,RYD;&PB('8P+C @=',],C P-"\Q,"\Q-B Y.C0P#0H@(#(X.&L@,C P M-"\Q,"\Q-B!#.EQC>6=W:6Y<8FEN7&-Y9V=M<'AX+3,N9&QL("T@;W,]-"XP M(&EM9STQ+C @6=G=&AR96%D+3$M,BTP+F1L;" M(&]S M/30N,"!I;6<],2XP('-Y6=G M=&AR96%D+3$M,BTP+F1L;"(@=C N,"!T6=H:7-T;W)Y-"YD;&P@ M+2!O7,]-"XP#0H@(" @(" @(" @(" @(" @(" B M8WEG:&ES=&]R>30N9&QL(B!V,"XP('1S/3(P,#$O,2\W(#4Z,S0-"B @(#(Y M:R R,# S+S X+S$P($,Z7&-Y9W=I;EQB:6Y<8WEG:&ES=&]R>34N9&QL("T@ M;W,]-"XP(&EM9STQ+C @6=H:7-T;W)Y-BYD;&P@+2!O M7,]-"XP#0H@(" @(" @(" @(" @(" @(" B8WEG M:&ES=&]R>38N9&QL(B!V,"XP('1S/3(P,#8O,B\Q." W.C S#0H@(#DT-VL@ M,C P-2\Q,2\R,"!#.EQC>6=W:6Y<8FEN7&-Y9VEC;VYV+3(N9&QL("T@;W,] M-"XP(&EM9STQ+C @6=I;G1L+3$N9&QL("T@;W,]-"XP M(&EM9STQ+C @6=W:6Y<8FEN M7&-Y9VIP967,]-"XP#0H@(" @ M(" @(" @(" @(" @(" B8WEG:G!E9S9B+F1L;"(@=C N,"!T6=W:6Y<8FEN7&-Y9VQB M97(M,BTR+36=L9&%P+3(M,BTW+F1L;" M(&]S/30N,"!I;6<],2XP('-Y6=L9&%P+3(M,BTW+F1L;"(@=C N,"!T6=L9&%P7W(M,BTR+36=M96YU+3 AT N9&QL("T@;W,]-"XP(&EM9STQ+C @6=M:6YI6=M:6YI6=W:6Y<8FEN7&-Y9VUP+3,N9&QL("T@;W,] M-"XP(&EM9STQ+C @6=M<&9R+3 N9&QL("T@;W,]-"XP(&EM M9STQ+C @6=N8W5R6=P86YE;"TX+F1L;" M(&]S/30N M,"!I;6<],2XP('-Y6=P86YE M;"TX+F1L;"(@=C N,"!T6=P86YE;#4N9&QL("T@;W,]-"XP(&EM M9STQ+C @6=P86YE;#8N9&QL(B!V M,"XP('1S/3(P,#(O,2\Y(#6=P86YE;#6=W:6Y< M8FEN7&-Y9W!C7,]-"XP#0H@ M(" @(" @(" @(" @(" @(" B8WEG<&-R92TP+F1L;"(@=C N,"!T6=P8W)E8W!P+3 N9&QL("T@;W,]-"XP(&EM9STQ+C @6=P97)L-5\X+F1L;"(@=C N,"!T6=P M;W!T+3 N9&QL("T@;W,]-"XP(&EM9STQ+C @6=W:6Y<8FEN7&-Y9W)E861L:6YE-"YD;&P@+2!O7,]-"XP#0H@(" @(" @(" @(" @(" @(" B8WEG6=W:6Y<8FEN7&-Y9W)E861L:6YE-2YD;&P@+2!O7,]-"XP#0H@(" @(" @(" @(" @(" @(" B8WEG6=R96%D;&EN938N9&QL("T@;W,] M-"XP(&EM9STQ+C @7,]-"XP#0H@(" @(" @(" @(" @(" @(" B8WEG=&EF M9GAX+34N9&QL(B!V,"XP('1S/3(P,#4O-R\Q,2 Q.C(Q#0H@(" R-VL@,C P M-2\Q,"\R,R!#.EQC>6=W:6Y<8FEN7&-Y9W5N9VEF+30N9&QL("T@;W,]-"XP M(&EM9STQ+C @BYD;&P@+2!O7,]-"XP#0H@(" @(" @(" @(" @(" @(" B8WEG>BYD;&PB('8P+C @ M=',],C P-2\X+S(S(#0Z,#,-"B Q-S8S:R R,# V+S Q+S(P($,Z7&-Y9W=I M;EQB:6Y<8WEG=VEN,2YD;&P@+2!O7,]-"XP#0H@ M(" @(" @(" @(" @(" @(" B8WEG=VEN,2YD;&PB('8P+C @=',],C P-B\Q M+S(P(#$Y.C(X#0H@(" @0WEG=VEN($1,3"!V97)S:6]N(&EN9F\Z#0H@(" @ M(" @($1,3"!V97)S:6]N.B Q+C4N,3D-"B @(" @(" @1$Q,(&5P;V-H.B Q M.0T*(" @(" @("!$3$P AT 8F%D('-I9VYA;"!M87-K.B Q.3 P-0T*(" @(" @ M("!$3$P@;VQD('1E6=N=7,@6=W:6X@6=D6=D6=D<',M,2YD;&PB('8P+C @=',],C P-2\R+S(S(#$U M.C0R#0H@(" R-FL@,C P-2\P,B\R,R!#.EQC>6=W:6Y<=7-R7%@Q,5(V7&)I M;EQC>6=D<'-T:RTQ+F1L;" M(&]S/30N,"!I;6<],2XP('-Y6=D<'-T:RTQ+F1L;"(@=C N,"!T7,]-"XP#0H@(" @(" @(" @(" @(" @(" B8WEG1'106=F;VYT M96YC+3$N9&QL(B!V,"XP('1S/3(P,#4O,B\R,R Q-3HT-0T*(" @,S9K(#(P M,#4O,#(O,C,@0SI<8WEG=VEN7'5S7,]-"XP#0H@(" @(" @(" @(" @(" @(" B M8WEG1E,M-BYD;&PB('8P+C @=',],C P-2\R+S(S(#$U.C,T#0H@(#,U.&L@ M,C P-2\P,B\R,R!#.EQC>6=W:6Y<=7-R7%@Q,5(V7&)I;EQC>6='3"TQ+F1L M;" M(&]S/30N,"!I;6<],2XP('-Y6='3"TQ+F1L;"(@=C N,"!T6='3%4M,2YD;&PB('8P+C @=',],C P-2\R+S(S(#$U.C0Q#0H@ M(#$T,&L@,C P-"\P."\P-B!#.EQC>6=W:6Y<=7-R7%@Q,5(V7&)I;EQC>6=G M;'5T+3,N9&QL("T@;W,]-"XP(&EM9STQ+C @6=)0T4M-BYD;&PB('8P+C @=',],C P-2\R+S(S M(#$U.C(X#0H@(" W-VL@,C P-"\P,R\S,2!#.EQC>6=W:6Y<=7-R7%@Q,5(V M7&)I;EQC>6=-7,]-"XP#0H@ M(" @(" @(" @(" @(" @(" B8WEG37)M+3(N9&QL(B!V,"XP('1S/3(P,#0O M,R\S,2 V.C(S#0H@(" @.6L@,C P-2\P,B\R,R!#.EQC>6=W:6Y<=7-R7%@Q M,5(V7&)I;EQC>6=O;&18+38N9&QL("T@;W,]-"XP(&EM9STQ+C @7,]-"XP#0H@(" @(" @(" @(" @(" @(" B8WEG<'-R M97,M,2YD;&PB('8P+C @=',],C P-2\R+S(S(#$U.C0R#0H@(" S,&L@,C P M-2\P,B\R,R!#.EQC>6=W:6Y<=7-R7%@Q,5(V7&)I;EQC>6=332TV+F1L;" M M(&]S/30N,"!I;6<],2XP('-Y6=332TV+F1L;"(@=C N,"!T6=5:6PM,BYD;&PB('8P+C @=',],C P-"\S+S,Q(#8Z,C,-"B @.#6=8,3$M-BYD;&PB('8P+C @=',],C P-2\R+S(S(#$U.C(X#0H@ M(#(U-&L@,C P-2\P,B\R,R!#.EQC>6=W:6Y<=7-R7%@Q,5(V7&)I;EQC>6=8 M877,]-"XP#0H@(" @(" @(" @ M(" @(" @(" B8WEG6&%W+38N9&QL(B!V,"XP('1S/3(P,#4O,B\R,R Q-3HS M,0T*(" S-39K(#(P,#4O,#(O,C,@0SI<8WEG=VEN7'5S6=8876=8877,]-"XP#0H@(" @(" @(" @(" @(" @(" B8WEG6&-O;7!O M7,]-"XP#0H@(" @(" @(" @(" @ M(" @(" B8WEG6&-U7,]-"XP#0H@ M(" @(" @(" @(" @(" @(" B8WEG6&1A;6%G92TQ+F1L;"(@=C N,"!T6=897AT+38N M9&QL(B!V,"XP('1S/3(P,#4O,B\R,R Q-3HR. T*(" @,39K(#(P,#4O,#(O M,C,@0SI<8WEG=VEN7'5S&5S+3,N9&QL("T@ M;W,]-"XP(&EM9STQ+C @6=89G0M,2YD;&PB('8P+C @=',],C P,R\Q,2\Q." R.C0R#0H@ M(" V,VL@,C P-"\P,R\R,R!#.EQC>6=W:6Y<=7-R7%@Q,5(V7&)I;EQC>6=8 M9G0M,BYD;&P@+2!O7,]-"XP#0H@(" @(" @(" @ M(" @(" @(" B8WEG6&9T+3(N9&QL(B!V,"XP('1S/3(P,#0O,R\R,R R,SHR M, T*(" @,C=K(#(P,#4O,#(O,C,@0SI<8WEG=VEN7'5S7,]-"XP#0H@(" @(" @ M(" @(" @(" @(" B8WEG6&DM-BYD;&PB('8P+C @=',],C P-2\R+S(S(#$U M.C,T#0H@(#$R-6L@,C P-2\P,B\R,R!#.EQC>6=W:6Y<=7-R7%@Q,5(V7&)I M;EQC>6=X:V)F:6QE+3$N9&QL("T@;W,]-"XP(&EM9STQ+C @6=X:V)U:2TQ+F1L;"(@ M=C N,"!T6=W:6Y<=7-R7%@Q,5(V7&)I;EQC>6=8;74M-BYD;&P@+2!O7,]-"XP#0H@(" @(" @(" @(" @(" @(" B8WEG6&UU+38N M9&QL(B!V,"XP('1S/3(P,#4O,B\R,R Q-3HS, T*(" @,3%K(#(P,#4O,#(O M,C,@0SI<8WEG=VEN7'5S6=8 M;75U+3$N9&QL(B!V,"XP('1S/3(P,#4O,B\R,R Q-3HS, T*(" @,C9K(#(P M,#4O,#(O,C,@0SI<8WEG=VEN7'5S7,]-"XP#0H@(" @(" @(" @(" @(" @(" B M8WEG6' M-BYD;&PB('8P+C @=',],C P-2\R+S(S(#$U.C,Q#0H@(" U,FL@ M,C P-2\P,B\R,R!#.EQC>6=W:6Y<=7-R7%@Q,5(V7&)I;EQC>6=8<&TM-"YD M;&P@+2!O7,]-"XP#0H@(" @(" @(" @(" @(" @ M(" B8WEG6'!M+30N9&QL(B!V,"XP('1S/3(P,#4O,B\R,R Q-3HS, T*(" @ M,3)K(#(P,#4O,#(O,C,@0SI<8WEG=VEN7'5S7,]-"XP M#0H@(" @(" @(" @(" @(" @(" B8WEG6')E;F1E7,]-"XP#0H@(" @(" @(" @(" @(" @(" B8WEG6%)E"TV+F1L;" M(&]S/30N,"!I M;6<],2XP('-Y6=X6=8="TV+F1L;"(@=C N,"!T6=8='-T+38N9&QL(B!V,"XP('1S/3(P,#4O M,B\R,R Q-3HS- T*#0I.;R!#>6=W:6X@6=W:6Y?7!T(" @(" @(" @(" @ M(" @(#$N,2TQ#0IC=G,@(" @(" @(" @(" @(" @(" Q+C$Q+C$W+3$-"F-Y M9W)U;G-R=B @(" @(" @(" @(#$N,3(M,0T*8WEG=71I;',@(" @(" @(" @ M(" @,2XR+C$P+3$-"F-Y9W=I;B @(" @(" @(" @(" @(#$N-2XQ.2TT#0IC M>6=W:6XM9&]C(" @(" @(" @(" Q+C0M,PT*9&1D(" @(" @(" @(" @(" @ M(" @,RXS+CDM,0T*9&EF9G5T:6QS(" @(" @(" @(" @,BXX+C7!E,B @(" @(" @(" @(#(N,2XY+3$-"F=A M=VL@(" @(" @(" @(" @(" @(#,N,2XU+3,-"F=C8RUC;W)E(" @(" @(" @ M(" @(#,N-"XT+3$-"F=C8RUG*RL@(" @(" @(" @(" @(#,N-"XT+3$-"F=C M8RUM:6YG=RUC;W)E(" @(" @(#(P,#4P-3(R+3$-"F=C8RUM:6YG=RUG*RL@ M(" @(" @(#(P,#4P-3(R+3$-"F=D8B @(" @(" @(" @(" @(" @(#(P,#0Q M,C(X+3,-"F=D8FT@(" @(" @(" @(" @(" @(#$N."XS+3<-"F=E='1E>'0@ M(" @(" @(" @(" @(# N,30N-2TQ#0IG;&EB(" @(" @(" @(" @(" @(" Q M+C(N,3 M,PT*9VUP(" @(" @(" @(" @(" @(" @-"XQ+C0M,@T*9W)E<" @ M(" @(" @(" @(" @(" @,BXU+C%A+3(-"F=R;V9F(" @(" @(" @(" @(" @ M(#$N,3 AT N,2TR#0IG>FEP(" @(" @(" @(" @(" @(" Q+C,N-2TQ#0IJ<&5G M(" @(" @(" @(" @(" @(" V8BTQ,0T*;&5S&]R9RUX,3$M9G-C;" @(" @(" @ M-BXX+C$N,"TR#0IX;W)G+7 AT Q,2UL:6)S+61A=&$@(" V+C AT N,BXP+3$-"GAO M#$Q+7AW:6X@(" @(" @(#8N."XR+C M- T*>'1EPH@("!R96%D7V1I2 AT B+V-Y9V1R:79E+V,O=&QM+R(I.PH*(" @ MPH@("!$25(@*F1I2 ]($Y53$P["B @('-T5]E;G1R>2 ] M($Y53$P["B @('-T2 ] M(&]P96YD:7(H9&ER;F%M92D["@H@("!A2DI("$]($Y53$PI"B @('L*(" @(" @8VAA2D["GT*"G-T871I8R!V M;VED"G!E&ET*$58251?1D%)3%5212D["B @('T*(" @96QS M90H@("!["B @(" @(&5X=')A8W1?8VAE8VMS=6TH<&]P96Y?71E