Bug #76321 [Com]: ftell(STDIN) returns 0 when no stdin is supplied

From: Date: Thu, 10 May 2018 22:04:42 +0000
Subject: Bug #76321 [Com]: ftell(STDIN) returns 0 when no stdin is supplied
References: 1  Groups: php.bugs 
Request: Send a blank email to php-bugs+get-215193@lists.php.net to get a copy of this message
Edit report at https://bugs.php.net/bug.php?id=76321&edit=1 ID: 76321 Comment by: gadelat at gmail dot com Reported by: gadelat at gmail dot com Summary: ftell(STDIN) returns 0 when no stdin is supplied Status: Not a bug Type: Bug Package: Filesystem function related Operating System: Windows 10 PHP Version: 7.2.5 Block user comment: N Private report: N New Comment: My application revolves around processing STDIN. As a first step I validate input. I check if user supplied stdin and exit if didn't. So is there no way to check for STDIN presence on Windows without hanging whole application? Previous Comments: ------------------------------------------------------------------------ [2018-05-10 21:56:19] requinix@php.net That won't prevent there from being a stdin. You aren't using it, but it's still there. As for Linux, stdin is a FIFO (glorified buffer) and you can't ftell on a FIFO. Why is having stdin a problem? ------------------------------------------------------------------------ [2018-05-10 21:34:37] gadelat at gmail dot com Running the script via php test.php from cmd.exe, powershell or git bash. Tried both thread safe and non-thread safe php 7.2.5 versions. I'm doing it via Virtualbox. ------------------------------------------------------------------------ [2018-05-10 16:32:35] requinix@php.net What are you doing to not "provide" stdin? ------------------------------------------------------------------------ [2018-05-09 21:50:48] gadelat at gmail dot com Description: ------------ I'm trying to make my application work in Windows. Important part of that is to detect if STDIN was provided. I can't figure out how to do that in Windows. On Linux OS, following returns bool(false), in Windows int(0) var_dump(ftell(STDIN)); Other approaches have same problem, or indefinitely block application if no stdin was provided. Is there no way to reliably detect STDIN in Windows? Test script: --------------- var_dump(ftell(STDIN)); Expected result: ---------------- FALSE Actual result: -------------- 0 ------------------------------------------------------------------------ -- Edit this bug report at https://bugs.php.net/bug.php?id=76321&edit=1

« previous php.bugs (#215193) next »