ตรวจหา MS Windows


78

ท้าทาย

สร้างโปรแกรมที่ส่งกลับค่าความจริงเมื่อทำงานบน Microsoft Windows (เพื่อความง่ายเราจะติดกับ Windows 7, 8.1 และ 10) และค่าที่ไม่แน่นอนเมื่อทำงานบนระบบปฏิบัติการอื่น (OSX, FreeBSD, Linux)

กฎระเบียบ

  • รหัสที่ล้มเหลวในการรัน / คอมไพล์บนแพลตฟอร์มจะไม่นับเป็นค่าที่ไม่ถูกต้อง

เกณฑ์การชนะ

ฉันติดป้ายกำกับนี้เป็นดังนั้นคะแนนต่ำสุดชนะ แต่ฉันก็สนใจที่จะเห็นวิธีแก้ปัญหาที่สร้างสรรค์สำหรับปัญหานี้


7
โปรแกรมสามารถออกโดยใช้รหัสทางออกได้หรือไม่ ( อนุญาตตามปกติ )
FlipTack

13
คุณสามารถให้รายชื่อที่แน่นอนเกี่ยวกับระบบปฏิบัติการที่ต้องการใช้งานได้หรือไม่?
FlipTack

2
ผลลัพธ์ควรอยู่ภายใต้ Windows RT อย่างไร
Adám

6
คุณอาจต้องการระบุระบบที่ไม่ใช่ Windows บางระบบที่ต้องรองรับ มีการถกเถียงในความคิดเห็นเกี่ยวกับสิ่งต่างๆเช่น DOS และ OS2
jpmc26

2
เราอาจต้องมีฉันทามติเกี่ยวกับสิ่งที่นับว่าเป็นความจริงและเท็จสำหรับรหัสทางออก การประชุมปกติคือ 0 สำหรับความจริงและสิ่งอื่นใดที่เป็นเท็จ แต่คำตอบจำนวนมากถือว่าเป็นสิ่งที่ตรงกันข้ามและคำนิยาม "ถ้าคำสั่ง" ไม่ได้ใช้อย่างชัดเจน

คำตอบ:


75

เป็นกลุ่ม 2 ไบต์

<C-a>1

บน Windows, <C-a>(Ctrl +) Select Allจะแมปโดยค่าเริ่มต้น หากคุณพิมพ์ a 1ในโหมดเลือกใน Windows ระบบจะแทนที่การเลือกด้วยสิ่งที่คุณพิมพ์ (1) ทิ้ง 1 ไว้ในบัฟเฟอร์

บนระบบปฏิบัติการอื่น ๆโดยค่าเริ่มต้นถูกแมปไป<C-a> Increment numberเนื่องจากไม่มีการเพิ่มจำนวนมันเป็น no-op และ 1 จะเพิ่มจำนวน แต่ในแง่ของบัฟเฟอร์คือ no-op

1 เป็นความจริงในกลุ่มและสตริงว่างเปล่าเป็นเท็จ


ดูเหมือนว่า 3 การกดแป้น Ctrl + a + 1
Pavel

12
ฉันคิดว่าเมตาดาต้าโพสต์นี้meta.codegolf.stackexchange.com/questions/8995/…คำตอบที่เป็นกลุ่มจะได้คะแนนโดยไม่มีตัวดัดแปลง (โดยเฉพาะอย่างยิ่งเมื่อคำตอบแรกของโพสต์นั้นใช้ <ctrl + a> เป็นตัวอย่างสำหรับ 1 ไบต์)
nmjcman101

4
@Pavel มัน,Ctrl + a 1ถ้ามันเป็นCtrl + a + 1มันจะถูกนับเป็น 1 การกดแป้น
Captain Man

7
สวยฉันรักคำตอบนี้!
DJMcMayhem

มันค่อนข้างหรูหราฉันชอบมัน
Dan

108

MATLAB, 4 ไบต์

ispc

จากเอกสาร :

tf = ispcส่งคืนโลจิคัล 1 (จริง) หากเวอร์ชันของซอฟต์แวร์MATLAB®สำหรับแพลตฟอร์มMicrosoft®Windows® มิฉะนั้นจะส่งคืนตรรกะ 0 (เท็จ)

นอกจากนี้ยังมีฟังก์ชั่นและismac ฉันจะทิ้งมันไว้กับผู้อ่านเพื่อหาว่าฟังก์ชั่นเหล่านั้นทำอะไร Megoขอแผนภาพอธิบายและดังนั้นฉันจึงพยายามอธิบายที่นี่:isunix ismacisunix

enter image description here

มันก็ไม่ได้ถามหาแผนภาพของispcแต่ฉันสามารถแสดงให้เห็นว่าพฤติกรรมที่สวยเหมือนกันยกเว้นแทนOSXและมีUnixWindows


แนวทางที่สอง:

นี่เป็นวิธีที่สองgetenvโดยใช้ 23 ไบต์ที่ควรเป็น bullet bullet เว้นแต่มีระบบปฏิบัติการอื่นที่เริ่มต้นด้วยW:

x=getenv('OS');x(1)==87

getenv 'name'ค้นหารายการสภาพแวดล้อมระบบปฏิบัติการพื้นฐานสำหรับข้อความของแบบฟอร์มname=valueโดยที่nameเวกเตอร์อักขระป้อนเข้าอยู่ หากพบว่าMATLAB®ส่งคืนค่าเวกเตอร์ของอักขระ หากไม่พบชื่อที่ระบุเมทริกซ์ที่ว่างเปล่าจะถูกส่งกลับ


4
ความคิดเห็นไม่ได้มีไว้สำหรับการอภิปรายเพิ่มเติม การสนทนานี้ได้รับการย้ายไปแชท
Dennis

54

Python 2.7.10 , 24 ไบต์

import os
0/('['>os.sep)

ขอบคุณ FlipTack 3 ไบต์

โปรแกรมนี้ใช้ประโยชน์จากความจริงที่ว่า Windows เป็นระบบปฏิบัติการเดียวที่ใช้\เป็นตัวแยกเส้นทาง โดยปกติแล้วสิ่งนี้น่าหงุดหงิดและไม่ดี แต่เมื่อเป็นข้อได้เปรียบ บน Windows '['>os.sepเป็นเท็จและ0/0ถูกคำนวณทำให้เกิดZeroDivisionErrorและออกจากด้วยรหัสทางออกที่ไม่เป็นศูนย์ บนแพลตฟอร์มที่ไม่ใช่ Windows '['>os.sepเป็นจริงทำให้การแสดงออก0/1ซึ่งไม่ทำอะไรเลยและโปรแกรมออกจากด้วยรหัสทางออก 0


DOS ยังใช้แบ็กสแลชเป็นตัวคั่นพา ธ และมีการนำ Python 2 ไปใช้อย่างน้อยหนึ่งตัว
isanae

5
@isanae ฉันได้แก้ไขชื่อเพื่อระบุ Python 2.7 - การใช้งาน Python 2 เพียงอย่างเดียวใน DOS คือค่าบั๊กที่เก่าแก่ 2.4.2
Mego

ระบบปฏิบัติการ / 2 ยังใช้แบ็กสแลชและมีการใช้งาน Python 2.7;)
isanae

9
@isanae ที่นั่นฉันระบุ 2.7.10 ขอให้โชคดีในการหาพอร์ตของที่
Mego

2
เห็นได้ชัดว่ามันจำเป็นต้องให้ผลลัพธ์ที่ถูกต้องกับ windows ล่าสุด 3 รุ่นเท่านั้นและน่าจะคล้ายกันกับ versios ล่าสุดของสามระบบอื่น ๆ ที่แสดงรายการ OS2 และ DOS ไม่สำคัญ
Jasen

45

สมัชชา x86, 7 ไบต์ (ได้รับแรงบันดาลใจจากคำตอบของ Runemoro )

31 DB 89 D8 40 CD 80

หรือ

xor ebx, ebx 
mov eax, ebx
inc eax
int 0x80

ลักษณะ

แรกของทั้งหมดที่เราจะตั้งค่าeaxการ1(หมายเลขโทรระบบสำหรับexit(int val)สำหรับLinux, FreeBSDและOSX) จากนั้นเราจะเรียกประตูขัดจังหวะ0x80ซึ่งเป็นประตูสำหรับการเรียกระบบLinux, และFreeBSD OSXนั่นจะทำให้โปรแกรมออกจากสถานะebxซึ่งเป็น0( false)

ใน Windows int 0x80เป็นเกตที่ไม่ถูกต้อง (มันใช้2eเป็นเกท sallall) และจะทำให้โปรแกรมขัดข้องทำให้จบด้วยรหัสการออกในเชิงบวก ( true)

แก้ไข:จะไม่ทำงานOSXเนื่องจากมีรูปแบบการส่งผ่านอาร์กิวเมนต์ที่แตกต่างกันใน 32 บิต (โดยสแต็ก)

การอ้างอิงและการอ่านเพิ่มเติม


3
นั่นยอดเยี่ยม!
z0rberg ใน

เหตุใดการชนจึงมีคุณค่าอย่างแท้จริง เป็นเพราะ EAX (โดยทั่วไปแล้วค่าส่งคืน) คือ 1 หรือไม่ นอกจากนี้ EAX รับประกันว่าจะเป็น 0 เมื่อเริ่มโปรแกรมหรือไม่ หรือคุณต้องการxor eax, eaxในที่นั่น?
โคลจอห์นสัน

3
@ColeJohnson: ตรวจพบข้อขัดข้องของระบบปฏิบัติการ (บนระบบปฏิบัติการที่ใช้กับ x86) ไม่เคยปล่อยรหัสการออกเป็น 0 เพราะมันถูกสงวนไว้สำหรับการยกเลิกที่ประสบความสำเร็จ (โดยปกติรหัสออกคือค่าที่ไม่แน่นอนที่ระบบปฏิบัติการสงวนไว้สำหรับกรณีนี้โดยเฉพาะ) อย่างไรก็ตามฉันไม่แน่ใจว่าจะนับ 0 เป็นเท็จและ 1 เป็นความจริงในรหัสออกของโปรแกรมเนื่องจากการประชุมปกติคือ ตรงข้ามแน่นอน (กับ 0 เป็น vaue ความจริงเท่านั้นเช่นโปรแกรม UNIX / Linux / POSIX มาตรฐานfalseออกด้วยรหัส 1 ในขณะที่trueออกด้วยรหัส 0)

1
คำตอบนี้โดยนัยถือว่าการลงทะเบียนeaxและebxถูกล้างข้อมูลให้เป็นศูนย์เมื่อเริ่มโปรแกรม (บนที่ไม่ใช่ Windows) ซึ่งไม่รับประกันหากฉันจำได้อย่างถูกต้อง นอกจากนี้ยังมีข้อสันนิษฐานอย่างชัดเจนว่าการส่งผ่านข้อโต้แย้งของ syscall สำหรับ Linux นั้นตรงกับ FreeBSD และ OSX ซึ่งน่าแปลกใจมาก
zwol

1
@ Sebastian-LaurenţiuPlesciucเป็นคำถามที่ดี mov eax, 1จะได้รับการแปลเป็นภาษาซึ่งเป็นจำนวนมากอีกต่อไปที่เพิ่งย้ายลงทะเบียนและเรียก\xB8\x01\x00\x00\x00 inc
Shmuel H.

29

C, 44 43 38 36 ไบต์

ขอบคุณ @Downgoat สำหรับ byte! มีการขีดฆ่า 44 ยังคงเป็นปกติ 44
ต้องขอบคุณ @Neil สองไบต์!

f(){return
#ifdef WIN32
!
#endif
0;}

แต่เดิมผมจะชี้ให้เห็นว่าคุณสามารถบันทึกพวงของไบต์โดยการย้าย0ออกจากifdefและการเปลี่ยน1ไป!แต่ฉันคิดว่า_WIN32+0ผลงานที่ดียิ่งขึ้นยัง
Neil

ถ้า c99 เป็น OK คุณสามารถเปลี่ยน f เป็น main และติดreturn 1;อยู่ใน ifdef และลบส่วนอื่นเนื่องจาก main โดยไม่ส่งคืนใน c99 ต้องส่งคืน 0
simon

11
นั่นเป็นคำสั่งของคอมไพเลอร์ ถ้ามันถูกคอมไพล์บนระบบ Windows และทำงานบนระบบลีนุกซ์มันจะยังคงส่งคืน 1
เชลจอห์นสัน

4
@MichealJohnson no. ฉันสามารถรวบรวมบน linux (ใช้ mingw32gcc msvc) snd รับรหัสที่ส่งกลับจริงเมื่อทำงานบน windows ฉันไม่รู้คอมไพเลอร์ linux ที่โฮสต์บน windows ถ้าคุณต้องการที่จะโต้แย้งชั้นจำลองเช่น "ไวน์" ทุกคำตอบอื่น ๆ อาจจะประสบปัญหาเดียวกัน
Jasen

1
ไม่แน่ใจว่าเพิ่งกำหนด WIN32 แต่กำหนดให้ไม่ใช่ศูนย์ หากเป็นกรณีต่อมาคุณสามารถพูด#if WIN32ได้ สำหรับผู้ที่ไม่ใช่ windows เนื่องจากไม่ได้กำหนด WIN32 ตัวประมวลผลล่วงหน้าจึงต้องใช้เป็น 0
Shahbaz

27

PHP, 22 ไบต์

`<?=PATH_SEPARATOR>":";`  

พิมพ์1หากตัวคั่นพา ธ เป็นเซมิโคลอน (โคลอนหรือว่างเปล่าสำหรับ OS อื่น ๆ ทั้งหมดยกเว้นสำหรับ DOS และ OS / 2) ไม่มีอะไรอื่น

22 ไบต์เช่นกัน แต่ไม่ปลอดภัย:

<?=strpos(__FILE__,92);

พิมพ์จำนวนเต็มบวกถ้าเส้นทางไฟล์มีเครื่องหมายทับขวา ไม่มีอะไรอื่น
ทางเลือกที่ปลอดภัยขนาด 27 ไบต์ : <?=DIRECTORY_SEPARATOR>"/";พิมพ์1หรือไม่มีอะไรเลย

การค้นหาที่แปลก : <?=__FILE__[1]==":";( 20 ไบต์ ) ควรจะไม่ปลอดภัย แต่ก็โอเค แต่ถึงแม้ว่า__FILE__แสร้งทำเป็นสตริง (ฉันพยายามvar_dumpแล้วgettype) แต่การทำดัชนีมันจะพ่นข้อผิดพลาดเว้นแต่คุณจะคัดลอกมันไปที่อื่น (การต่อข้อมูลยังใช้งานได้) หรือใช้เป็นพารามิเตอร์ฟังก์ชัน

แก้ไข:
<?=(__FILE__)[1]==":";(ยัง22 ไบต์ ) ทำงานใน PHP 7; แต่นั่นเป็นเพราะวงเล็บคัดลอกค่าคงที่ของตัวแปรชั่วคราว

27 ไบต์ : <?=stripos(PHP_OS,win)===0;
ทดสอบว่าPHP_OSค่าคงที่ที่กำหนดไว้ล่วงหน้านั้นเริ่มต้นด้วยwin(case insensitive; Windows, WIN32, WINNT แต่ไม่ใช่ CYGWIN หรือ Darwin) พิมพ์1สำหรับ Windows ไม่มีอะไรอื่น

17/18 ไบต์ :

<?=strlen("
")-1;

พิมพ์1ถ้ามันถูกเก็บไว้กับ Windows linebreak (เช่นใน DOS, OS / 2 และ Atari TOS - แม้ว่าฉันจะสงสัยว่าใครก็ตามที่คอมไพล์ PHP สำหรับ TOS เป็นอย่างอื่น0)

PHP_EOLนอกจากนี้คุณยังสามารถตรวจสอบอย่างต่อเนื่อง

ตัวเลือกเพิ่มเติม:

PHP_SHLIB_SUFFIXอยู่dllบน Windows แต่ไม่จำเป็นเท่านั้น
php_uname()ส่งคืนข้อมูลบนระบบปฏิบัติการและอื่น ๆ เริ่มต้นด้วยWindowsสำหรับ Windows
$_SERVER['HTTP_USER_AGENT']จะมีWindowsเมื่อเรียกในเบราว์เซอร์บน Windows
<?=defined(PHP_WINDOWS_VERSION_BUILD);(38 ไบต์) ทำงานใน PHP> = 5.3

ข้อสรุป

วิธีเดียวที่ไม่ปลอดภัยที่จะบอกได้ว่าเป็น Windows จริง ๆ หรือไม่ดูเหมือนว่าจะเป็นชื่อของระบบปฏิบัติการ สำหรับ PHP: php_os()อาจถูกปิดการใช้งานด้วยเหตุผลด้านความปลอดภัย แต่PHP_OSอาจจะมีข้อมูลที่ต้องการอยู่เสมอ


4
ชื่อไฟล์ใน * nix สามารถมีแบ็กสแลชได้ดังนั้นจึงไม่ผิดพลาดจริง ๆ กฎไม่ได้บอกว่าจะต้องเข้าใจผิดได้ดังนั้น¯ \ _ (ツ) _ / ¯
จอร์แดน

@Jordan: ถูกต้อง ฉันเพิ่มข้อมูลนั้นในคำอธิบาย ขอบคุณ
ติตัส

4
ทางเลือก: <?=class_exists(COM);. คลาสCOMนี้มีเฉพาะใน Windows เท่าที่ฉันรู้ ที่ควรช่วยคุณหนึ่งไบต์
Ismael Miguel

@IsmaelMiguel นั่นก็เพียงพอแล้วสำหรับคำตอบที่ต่างออกไปสำหรับคุณที่จะโพสต์ข้อความเช่นนี้ (อย่างไรก็ตามอาจไม่คุ้มค่าที่จะทำเช่นนั้นคำตอบนี้เขียนได้ดีมาก)
wizzwizz4

1
@ wizzwizz4 มันไม่คุ้มค่าหรอก คำตอบจะถูกผลักให้ลืมเลือน นั่นเป็นเหตุผลที่ฉันเพียงแค่แสดงความคิดเห็นแทนที่จะเขียนคำตอบของฉันเอง
Ismael Miguel

16

Befunge-98, 7 ไบต์

6y2%!.@

ลองออนไลน์!

สิ่งนี้ทำงานได้โดยการสอบถามตัวแยกเส้นทางของระบบซึ่งอยู่\บน Windows และ/บนระบบปฏิบัติการอื่น

6y            System information query: #6 returns the path separator.
  2%          Test the low bit - this will be 1 for '/' and 0 for '\'.
    !         Not the value, so it becomes 0 for '/' and 1 for '\'.   
     .@       Output the result and exit.

15

Mathematica ขนาด 28 ไบต์

$OperatingSystem=="Windows"&

จุดประสงค์ในการทำให้ฟังก์ชั่นคืออะไร? คุณสามารถลบเครื่องหมายและบันทึกหนึ่งไบต์และรหัสจะประเมินโดยตรงว่ามันถูกดำเนินการบนระบบ Windows-ish หรือไม่
Ruslan

@Ruslan คำตอบทั้งหมดต้องเป็นโปรแกรมเต็มรูปแบบที่พิมพ์ผลลัพธ์หรือฟังก์ชัน callable หากนี่คือคำตอบสำหรับโน้ตบุ้ก Mathematica คุณอาจจะเรียกมันว่าเป็นโปรแกรมเต็มรูปแบบ แต่ถ้าฉันเรียกสิ่งนั้นจากบรรทัดคำสั่งโดยที่ไม่มี&มันก็จะไม่พิมพ์อะไรเลย (และมันก็ไม่ใช่ฟังก์ชั่น callable แต่เป็นเพียงตัวอย่าง / การแสดงออก)
Martin Ender

@ มาร์ตินเอนเดอร์ไม่มีเอาท์พุท? ฉันได้รับOut[1]= Falseผลลัพธ์จากสิ่งนี้:~/opt/Mathematica/11.0/Executables/math <<< '$OperatingSystem=="Windows"'
Ruslan

@ Ruslan ฉันเชื่อว่าจะเริ่มสภาพแวดล้อมโน้ตบุ๊ค (เพียงบรรทัดคำสั่งตาม) สิ่งที่ฉันหมายถึงโดยการเรียกใช้โปรแกรมจากบรรทัดคำสั่งใช้โหมดสคริปต์
Martin Ender

13

Java 8, 33 ไบต์

ขอขอบคุณเป็นพิเศษสำหรับ Olivier GrégoireสำหรับการแนะนำseparatorCharและ Kritixi Lithos สำหรับ -1 ไบต์!

นี่เป็นนิพจน์แลมบ์ดาที่ส่งคืนบูลีน นี้สามารถกำหนดให้และเรียกว่ามีSupplier<Boolean> f = ...;f.get()

()->java.io.File.separatorChar>90

ลองออนไลน์! - เซิร์ฟเวอร์ไม่ใช่ windows ดังนั้นสิ่งนี้จึงพิมพ์falseออกมา อย่างไรก็ตามในเครื่อง windows ของฉันรหัสเดียวกันจะพิมพ์trueออกมา

อะไรรหัสนี้จะได้รับของระบบ seperator [ไฟล์และตรวจสอบว่าจุดโค้ดของมันมีขนาดใหญ่กว่าตัวอักษร สิ่งนี้เป็นจริงสำหรับ Windows เนื่องจากมันใช้\เป็น seperator แต่ระบบปฏิบัติการอื่น ๆ ใช้/ซึ่งมีรหัสที่ต่ำกว่าในตาราง ASCII


ตัวแบ่งนี้จะไม่แตกในระบบปฏิบัติการอื่นที่เริ่มต้นด้วย W หรือไม่
Downgoat

()->java.io.File.separatorChar=='\\'มีเพียง 36 ไบต์
Olivier Grégoire

1
@ OlivierGrégoireเป็นคนดี - และฉันสามารถเล่นกอล์ฟถึง 34 โดยใช้()->java.io.File.separatorChar>'['!
FlipTack

2
@Titus WebOS, Whonix อาจจะมากยิ่งขึ้น
Olivier Grégoire

3
@Titus รอสิ่งที่เกี่ยวกับรอ ?
ไม่

11

J, 7 ไบต์

6=9!:12

นี่คือคำกริยา (คล้ายกับฟังก์ชั่น) ที่ใช้การรวม foreign ในตัว9!:12เพื่อรับชนิดระบบโดยที่ 5 คือ Unix และ 6 คือ Windows32


J เอกสารทางการแสดงว่ามันคืนค่านี้สำหรับ Windows รุ่นเก่า "6 Windows32 (95/98/2000 / NT)" ต้องอัปเดตเอกสารหรือไม่ จะเกิดอะไรขึ้นเมื่อเป็น Windows 64 บิต jsoftware.com/help/dictionary/dx009.htm
Keeta

ผ่านการทดสอบบน 64 บิต Windows 7 และส่งคืนค่า 6 เอกสารดูเหมือนว่าจะค่อนข้างเก่า
คีตา

@Keeta ใช่ฉันคิดว่ามันเก่า แต่ก็ยังส่งคืน 6 สำหรับฉันบน Windows 10 64 บิต
ไมล์

11

R, 15 ไบต์

.Platform$O>"v"

ขอบคุณplannapusสำหรับคำแนะนำในการใช้การจับคู่บางส่วนสำหรับการแยกองค์ประกอบรายการ

.Platformเป็นรายการที่มีรายละเอียดบางส่วนของแพลตฟอร์มภายใต้ R ที่ถูกสร้างขึ้น มีองค์ประกอบOS.type( องค์ประกอบเดียวที่มีชื่อขึ้นต้นด้วย "O") ซึ่งเป็นสตริงอักขระให้ระบบปฏิบัติการ (ตระกูล) ของคอมพิวเตอร์ หนึ่งหรือ"unix""windows"

ดังนั้น"unix"เป็นน้อยแล้ว"v"แต่เป็นมากขึ้นแล้ว"windows" "v"คำตอบอื่น ๆ ที่ถูกต้องคือ 15 ไบต์

.Platform$O>"V"
.Platform$O>"w"
.Platform$O>"W"

R จะถูกพัฒนาสำหรับระบบปฏิบัติการยูนิกซ์เหมือน Windows และ Mac ครอบครัวของระบบปฏิบัติการ ไม่รองรับตระกูล OS อื่น ๆ


1
มีแพลตฟอร์มอื่นที่ไม่ใช่ยูนิกซ์ที่ไม่ใช่หน้าต่างที่คุณรู้จัก ...
บลู

2
@muddyfish: .Platform [[1]] ถูกกำหนดเป็น "unix" หรือ "windows" ในเอกสาร R github.com/wch/r-source/blob/…
liori

ขออภัยไม่เป็นไร คำตอบควรถูกแก้ไขเพื่อรวมข้อเท็จจริงนี้เพื่อหยุดคำถามที่ถูกถามอีกครั้ง
Blue

10

Perl, 11 ไบต์

print$^O=~MS

^O ควรถูกแทนที่ด้วย Control-O ที่แท้จริง

เอาท์พุท1บน windows ไม่มีอะไรในระบบปฏิบัติการอื่น

โปรดทราบว่าฉันไม่ได้ใช้ sayเพราะมันเพิ่มบรรทัดใหม่ที่ต่อท้ายซึ่งเป็นความจริงใน Perl

-2 ไบต์ขอบคุณ primo (และแก้ไขปัญหาที่อาจเกิดขึ้น)
-1 ไบต์ขอบคุณ ais523


AFAIR สิ่งนี้จะไม่ทำงานใน Cygwin Perl
Igor Skochinsky

สิ่งนี้จะไม่ทำงานใน mingw Perl เช่นกัน Perl ถือว่าทั้งสองเป็นระบบปฏิบัติการที่แตกต่างจาก Windows แต่ (โดยทั่วไปแล้วพวกเขาเชื่อฟัง UNIX มากกว่าแบบแผนของ Windows) และยังไม่ชัดเจนว่าพวกเขาควรนับด้วยจุดประสงค์ของคำถามหรือไม่ ในข่าวอื่น ๆ ที่คุณสามารถบันทึกไบต์ที่นี่โดยใช้ตัวอักษรควบคุม-O ^Oตัวละครมากกว่า

@ ais523 ฉันแก้ไขแล้วขอบคุณ สำหรับ Cygwin และ Mingw ฉันจะลบโพสต์หากพวกเขาควรได้รับการพิจารณาว่าเป็น Windows แต่อย่างที่คุณพูดมันจะเหมาะสมกว่าที่จะพิจารณาพวกเขาเช่นระบบปฏิบัติการแยกต่างหาก (หรืออย่างน้อยก็ไม่ใช่ Windows OS)
Dada

คั่น Regex ไม่ควรจะเป็นสิ่งที่จำเป็นแม้ว่าผมอาจจะตรงกับ$^O=~W หรือคุณอาจไม่ตรงกับMS $^X=~':'
Primo

@primo ถูกต้องขอบคุณ ฉันไม่ทราบว่ามี OS อื่นใดWในนั้นดังนั้นฉันจึงคิดว่าจะตรวจสอบสิ่งที่Wดี .. ด้วยเหตุผลใดก็ตามที่คุณแนะนำMSแทน
Dada


9

รหัสเครื่อง x86, 9 ไบต์

40 39 04 24 75 02 CD 80 C3

รวบรวมจาก:

inc eax        ; set eax to 1
cmp [esp], eax ; check if [esp] == 1 (linux)
jne windows    ; jump over "int 0x80" if on windows
int 0x80       ; exit with exit code 0 (ebx)
windows:
ret            ; exit with exit code 1 (eax)

3
ไบนารีบริสุทธิ์ (COM) จะไม่ทำงานบน Windows หรือ Linux จึงไม่แน่ใจว่านี้เป็นที่ถูกต้อง
อิกอร์ Skochinsky

@IgorSkochinsky จะต้องมีล่ามเพื่อประกอบ
Shmuel H.

คุณสามารถสร้างรหัสให้สั้นลงได้โดยปล่อยทิ้งไว้เท่านั้นinc eaxและint 0x80ฉันคิดว่ามันควรจะล้มเหลวบน windows และยุติกระบวนการ
Shmuel H.

2
@IgorSkochinsky มีโปรแกรมที่รันไบนารีแบบดิบเช่นกัน เห็นลิงค์ในความคิดเห็นก่อนหน้าของฉัน
Shmuel H.

1
Bochs และ QEMU จำลองสภาพแวดล้อมของโลหะเปลือยและอย่าเรียกใช้รหัสไบนารีภายใต้โฮสต์ระบบปฏิบัติการ ดังนั้นพวกเขาจะไม่ทำงาน IMO แต่ทั้งหมดนี้อาจเป็นการสนทนาสำหรับเมตา
Igor Skochinsky

8

JavaScript, 42 30 26 25 ไบต์

console.log((
//Begin
_=>navigator.oscpu[0]>'V'
//End
)())

ทดสอบกับ Firefox (Chrome ไม่มีoscpuคุณสมบัติ) เนื่องจากตัวอักษรตัวเล็กมีรหัสอักขระที่สูงกว่าตัวอักษรตัวพิมพ์ใหญ่ขึ้นอยู่กับตัวอักษรตัวแรกของnavigator.oscpuการเป็นตัวพิมพ์ใหญ่และไม่ใช่W , X , YหรือZบนแพลตฟอร์มใด ๆ ที่ Firefox รองรับ (นอกเหนือจาก แน่นอน Windows) ตามโพสต์นี้เป็นกรณี

การแก้ไข

  1. บันทึก 12 ไบต์ขอบคุณNeilนีล
  2. บันทึกอีกสี่ไบต์
  3. ที่บันทึกไว้ขอบคุณไบต์อื่นเพื่อปั่น

oscpuอาจเป็นnavigatorคุณสมบัติที่สั้นที่สุดที่คุณสามารถใช้ได้ นอกจากนี้การทดสอบ regexp อาจสั้นกว่านี้ แต่ฉันไม่ได้วัด
Neil

คุณสามารถลบ!=-1และเพิ่ม~ทันทีหลังจากที่ลูกศรไขมันบันทึก 3 ไบต์
ลุค

คุณต้องสร้างฟังก์ชั่นหรือไม่? คุณไม่สามารถconsole.logทำการทดสอบ regex ได้หรือไม่ นอกจากนี้ยังสามารถใช้navigator.oscpu[0]=='W'งานได้หรือมีระบบปฏิบัติการอื่นที่เริ่มต้นด้วย W.

2
อืมด้วยเหตุผลบางประการ Chrome ของฉันไม่มี oscpu
Muzer

2
navigator.oscpu>'V'อาจทำงานได้ดี
Blender

8

C #, 61 48 ไบต์

()=>(int)System.Environment.OSVersion.Platform<4

บันทึกแล้ว 13 ไบต์ขอบคุณ TheLethalCoder

หรือโปรแกรมเต็มรูปแบบที่ 83 ไบต์:

class P{static int Main(){return(int)System.Environment.OSVersion.Platform<4?1:0;}}

ต่างๆของ Windows พันธุ์ใช้ค่า enum 0-3 ในการดำเนินงาน Microsoft .NET 4 คือ Unix, 5 คือ Xbox [360] (ซึ่งฉันจะไม่พิจารณา "Windows"), 6 คือ MacOSX Mono ใช้ค่าเดียวกันเพิ่ม 128 สำหรับ Unix / Linux ในรุ่นก่อนหน้า

ดังนั้นอะไรก็ตามที่ <4 คือ Windows และทุกอย่างอื่นไม่ใช่ Windows


2
ไม่แน่ใจว่าถ้าฉันหายไปบางอย่าง แต่ทำไมคุณหล่อค่าไปยังint?
auhmaan

@auhmaan CS0019 Operator '<' cannot be applied to operands of type 'PlatformID' and 'int'- พื้น, C # 's กฎการพิมพ์พูดว่าฉันไม่สามารถเปรียบเทียบPlatformIDและintโดยตรงและไม่มีนัยหล่อจากไปPlatformID intแต่มีเป็นอย่างชัดเจนหล่อจาก enums ทั้งหมดเพื่อค่าของพวกเขาซึ่งผมจะใช้ประโยชน์จากที่นี่ ...
บ๊อบ

1
@ MustafaAKTAŞนอกจากนี้ฉันต้องชี้ให้เห็นว่านี่คือการกำหนดเป้าหมาย C # /. NET Framework / .NET Core บน Xbox หนึ่งก็เป็นไปได้เท่านั้นที่จะเรียกใช้แอพพลิเค UWP ซึ่งใช้ API ที่แตกต่างกันไม่รวมถึงการSystem.Environment.OSVersionที่ทุกคน หากคุณกำลังจะมีปัญหากับเรื่องนั้นคุณควรลบทุกคำตอบที่ไม่ใช่ UWP นอกจากนี้ยังปรากฎว่าคุณไม่สามารถ (เรียกใช้แอพ UWP) บนแพลตฟอร์มที่ไม่ใช่ Windows ได้ดังนั้นคุณสามารถลบสิ่งเหล่านั้นได้ด้วย ซึ่งทำให้คุณมี 0 คำตอบและคำถามที่ไม่สามารถตอบได้
Bob

1
คุณสามารถรวบรวมAction<bool>ตัวอย่างแรกเป็น 48 ไบต์ (ฉันไม่ได้ทดสอบ แต่เชื่อว่ามันใช้งานได้) _=>(int)System.Environment.OSVersion.Platform<4;อาจต้องใช้()=>...ขนาด 49 ไบท์
TheLethalCoder

1
การรวบรวมฟังก์ชั่นที่ไม่ระบุชื่อเช่นFuncs และActions ถูกใช้ตลอดเวลาที่นี่ ฉันเชื่อว่ามันอยู่ในหน้าเคล็ดลับการเล่นกอล์ฟและฉันใช้พวกเขาเกือบตลอดเวลา นอกจากนี้ยังมีการใช้งานฟังก์ชั่นนิรนามในภาษาอื่น ๆ อีกมากมายดังนั้นฉันคิดว่ามันปลอดภัยที่จะใช้ที่นี่
TheLethalCoder

7

แบตช์ 50 ไบต์

@if %OS%==Windows_NT if not exist Z:\bin\sh echo 1

แก้ไข: แก้ไขการเพิกเฉยต่อ DOS แทนที่จะอ้างว่าเป็น Windows

เพียงวิธีอื่นที่ฉันรู้จากการทำงานของชุดนอกของ Windows คือการใช้ไวน์ซึ่งเริ่มต้นโดยแผนที่จะไปZ: /ดังนั้นถ้าZ:\bin\shมีอยู่มีโอกาสที่จะเป็น/bin/shเช่นนั้นไม่ใช่ MS Windows

ฉันไม่ทราบว่า WINE กำหนด% OS% เป็นอะไร แต่ถ้าไม่เป็นเช่นWindows_NTนั้นฉันสามารถบันทึกได้ 23 ไบต์


1
อีกวิธีคือ DOS ซึ่งไม่ใช่ Windows
Ruslan

สิ่งนี้ไม่เพียง แต่จะล้มเหลวภายใต้ DOS เท่านั้น แต่ยังบนคอมพิวเตอร์ที่มีการแมป Z: และเกิดขึ้นกับเส้นทางดังกล่าว
อดัม

1
อย่างน้อยฉันก็พยายามตรวจจับไวน์ ไม่มีคำตอบอื่นใดที่จะให้ผลลัพธ์ที่ถูกต้องเมื่อทำงานภายใต้ WINE
Neil

3
@ Adámแน่นอนและถ้าคุณคอมไพล์คำตอบ C ด้วย -DWIN32 = 1 มันจะล้มเหลวด้วย ประเด็นของคุณ?
Neil

1
ใช่ชุดไวน์OS=Windows_NT
Jasen

7

QBasic, 31 ไบต์

?INSTR(ENVIRON$("COMSPEC"),"W")

พิมพ์ไม่ใช่ศูนย์ใน Windows, 0 ภายใต้ทุกสิ่ง

COMSPECเป็นตัวแปรสภาพแวดล้อมที่ไม่ซ้ำกับ Microsoft OS มันชี้ไปแปลคำสั่งโดยทั่วไปหรือcommand.com cmd.exeใน Windows ตัวแปลคำสั่งจะอยู่ที่ใดที่หนึ่งในไดเรกทอรี Windows ภายใต้ MS-DOS จะอยู่ในไดเรกทอรี DOS หรือบนรูทของดิสก์และภายใต้ระบบปฏิบัติการอื่น ๆ จะไม่มีอยู่

โดยการตรวจสอบเพื่อดูว่าค่าของ COMSPECมี "W" เราสามารถบอกความแตกต่างระหว่าง Windows และไม่ใช่ Windows


COMSPECไม่ได้สงวนไว้ให้หมายถึงอะไรโดยเฉพาะอย่างยิ่งภายใต้ Linux (หมายถึงมันอยู่ภายใต้การควบคุมของผู้ใช้ตามค่าเริ่มต้น) ดังนั้นจึงเป็นไปไม่ได้ที่ผู้ใช้จะตั้งค่าเป็นค่าที่พวกเขากำลังใช้เพื่อจุดประสงค์ของพวกเขาเองW)? เป็นที่ยอมรับว่าเป็นเรื่องเล็กน้อย

1
@ ais523: นอกจากนี้ไดเรกทอรี Windows ไม่จำเป็นต้องมี W. มันเปราะในทั้งสองกรณี
Joey

7

Node.js, 27 16 15 13 ไบต์

ขอบคุณ@Patrickที่โกนโซลูชันของฉันออกไป 12 ไบต์โดยใช้ REPL ของ Node:

_=>os.EOL>`
`

ทางออกเดิม:

_=>require('path').sep!='/'

หากคุณเปลี่ยนสิ่งนี้เป็นNode.js REPLคุณสามารถบันทึก 16 ไบต์โดยใช้เพียง_=>path.sep!='/'
Patrick Roberts

ฉันใหม่กับ codegolf ฉันอนุญาตให้ทำเช่นนั้นได้หรือไม่
GilZ

ใช่ฉันไม่อยากแนะนำ REPL หมายถึงอ่านดำเนินการพิมพ์ลูปโปรแกรมที่ทำงานเมื่อคุณเข้าสู่nodeคอนโซล จากนั้นโมดูลโหนดระบบทั้งหมดจะพร้อมใช้งานโดยไม่จำเป็นต้องrequire()ใช้
Patrick Roberts

ขอโทษค่ะ ฉันหมายถึง 11 คุณสามารถบันทึกไบต์อื่นได้โดยเปลี่ยน!=เป็น>เนื่องจากดัชนี ASCII สำหรับ\ คือ 92 และ/47
Patrick Roberts

7

Excel VBA, 41 40 30 29 26 24 ไบต์

ฟังก์ชั่นหน้าต่างทันทีที่ส่งคืนtrueหากรหัส OS ของระบบเริ่มต้นนานกว่าความยาว 3 เนื่องจากข้อมูลถูก จำกัด ให้ส่งออกอย่างใดอย่างหนึ่งmacหรือpcdosผลตอบแทนนี้trueเฉพาะบน windows ชิ้น

?[Len(Info("SYSTEM"))>3]

รุ่นก่อนหน้า

''# Ignore the second `"` that follows every `\` - its only there for highlighting 

?Left(Environ("OS"),1)="W"                 # 24 Bytes

?InStr(ThisWorkbook.Path,"\"")             # 29 Bytes

?Mid(ThisWorkbook.Path,3,1)="\""           # 30 Bytes, Restricted to local Files

?Application.PathSeparator="\""            # 30 Bytes

?Left(Application.OperatingSystem,1)="W"   # 40 Bytes

การเปลี่ยนแปลง

-1 ขอบคุณ Neil ที่ใช้ Left(...,1)มากกว่าMid(...,1,1)

-10 ขอบคุณ ChrisH ที่ชี้ให้เห็น เคล็ดลับ Path Pathator @ Mego ของ

-1 สำหรับการตรวจสอบ WorkbookPathสำหรับ"\" แทนที่จะใช้Application.Path Separator

-4 สำหรับเปลี่ยนเป็น Environ()

-2 สำหรับเปลี่ยนเป็น [Len(Info(...

โซลูชันใหม่ 51 ไบต์

subรูทีนนวนิยายที่ส่งออกไปยัง VBE จะส่งหน้าต่างทันที1 (truthy)ภายใต้หน้าต่างและ0 (falsey)ภายใต้ mac โดยวิธีการคอมไพล์แบบมีเงื่อนไข

Sub a
i=1
#If Mac Then
i=0
#End If
Debug.?i
End Sub

1
leftช่วยให้คุณประหยัดไบต์
Neil

คุณเคยลองใช้ office365 ออนไลน์หรือไม่ มันสนับสนุน VBA ด้วยหรือเปล่า? แค่สงสัย.
Chris H

@ChrisH สำหรับความรู้ของฉัน office.com ไม่สนับสนุนการเขียนสคริปต์ VBA ออนไลน์ (แม้ว่าใครจะรู้ดีกว่าโปรดบอกฉันว่ามันจะทำให้ชีวิตของฉันง่ายขึ้นอย่างมีนัยสำคัญ) อย่างไรก็ตามด้วย O365 คุณมีสิทธิ์ในการดาวน์โหลดสำเนา Office 2016 (หรืออะไรก็ตามที่เป็นปัจจุบัน) ไปยังเดสก์ท็อปของคุณและที่สนับสนุน VBA scripting
เทย์เลอร์สกอตต์

ฉันสามารถหลีกเลี่ยงได้แล้ว ได้รับความคิดเห็นของคุณที่ลักษณะการตั้งค่าเพื่อดำเนินการต่อ (เพียงเครื่อง Windows ผมใช้มีสำเนาสก์ท็อปของสำนักงาน, เครื่องส่วนบุคคลเป็นลินุกซ์ทั้งหมด)
คริส H

1
@ เคล็ดลับคั่นเส้นทางชำเลืองของ ( ?Application.PathSeparator)="\"จะเป็น 32 มันเป็นถ่านเดี่ยว)
คริส H

6

Perl 6 ,  19  18 ไบต์

put $*DISTRO.is-win
put ?($*CWD~~/\\/)

ทั้งเอาต์พุตTrue␤หรือFalse␤ขึ้นอยู่กับระบบที่รันอยู่


อันที่สองขึ้นอยู่กับค่าที่ไม่ใช่ windows ของ CWD ที่ไม่มี `` ใด ๆ - ไม่มีการรับประกันว่า
Jasen



4

PHP 17 ไบต์

ต่อไปนี้จะแสดงผล 1 ถ้า windows และไม่มีอะไรถ้ามีอะไรอีก ละเว้นการสังเกตของการแปลงสตริง

<?=PHP_OS==WINNT;

ลองทดสอบออนไลน์ออนไลน์สำหรับ linux เพราะ sandbox เป็น linux สำหรับ PoC


แน่ใจว่าเพียงพอหรือไม่ ถามเพราะค่าที่เป็นไปได้สำหรับ: PHP_OS
จัดการ

1
'<? = PHP_OS [0] == W; `คือทั้ง 1 ไบต์ที่สั้นกว่าและจับค่า windows อื่น ๆ ทั้งหมดในคำถามที่เชื่อมโยงโดยการจัดการ >Vอาจทำงานด้วย
user59178

การจัดการขึ้นอยู่กับการรวบรวม PHP เวอร์ชัน windows windows เนื่องจาก Windows Visa \ 7 เวอร์ชัน Windows ถูกแสดงด้วย WINNT เนื่องจากเคอร์เนล NT Authority ก่อน windows XP และด้านล่างเป็น WIN32 และ Windows Server 2003 เป็น Windows
DrWhat

4

Java 8, 49 ไบต์

()->System.getenv().get("OS").contains("Windows")

นานกว่าคำตอบ Java อื่น ๆแต่ใช้วิธีการที่แตกต่างกัน

แลมบ์ดานี้เหมาะกับ a Supplier<Boolean>และสามารถทดสอบได้ด้วยโปรแกรมต่อไปนี้:

public class DetectMSWindows {

  public static void main(String[] args) {
    System.out.println(f(() -> System.getenv().get("OS").contains("Windows")));
  }

  private static boolean f(java.util.function.Supplier<Boolean> s) {
    return s.get();
  }

}

มันคล้ายกันมากกับคำตอบเริ่มต้นที่คุณเชื่อมโยง (ก่อนการแก้ไข)
Olivier Grégoire

ทำไมไม่เพียง.contains("W")?
Cyoce

@Cyoce จริงแล้วระบบปฏิบัติการผันแปรนั้นดูเหมือนจะเป็น Windows โดยเฉพาะ

4

Haskell, 39 31 ไบต์

import System.Info
f=os!!0=='m'

ฉันจะตรวจสอบผลลัพธ์ตัวอักษรตัวแรกของ "m" ซึ่งควรเป็น "mingw" สำหรับ windows เท่าที่ฉันสามารถบอกได้ไม่มีระบบปฏิบัติการอื่นที่เริ่มต้นด้วย M ข้อมูลมาจากhttps://github.com/ghc/ghc/blob/master/compiler/utils/Platform.hs


1
ในระบบของฉัน (Windows 10 แบบ 64 บิต GHC 8.0.1 64 บิต), ให้os "mingw32"
Mego

@ เหมือนคุณถูกต้องแก้ไขให้ถูกต้อง
Dylan Meeus

4

bash + coreutils 5 ไบต์

rm $0

ใช้ได้กับเชลล์ POSIXy ส่วนใหญ่ด้วย (โปรดสังเกตว่าพอร์ตของ Windows bashและrmมีอยู่แม้ว่าปกติแล้วจะใช้กับระบบปฏิบัติการ POSIXy ที่หนักหน่วงกว่าเท่านั้น แต่นี่ไม่ใช่รายการที่ไม่มีข้อมูลทั้งหมด) เอาท์พุทผ่านรหัสออก (0 = false, 1 = true) สามารถนับได้เป็น 4 ไบต์หากคุณอนุญาตให้สมมติชื่อไฟล์ (เช่นrm a) โปรดทราบว่าสิ่งนี้อาจล้มเหลวในกรณีของชื่อไฟล์ที่แปลกมาก (ซึ่งrmจะตีความว่าเป็นข้อโต้แย้งเนื่องจากไม่มีการอ้างอิงและอาจลบไฟล์ที่คุณสนใจดังนั้นฉันจึงแนะนำให้เรียกใช้โปรแกรมนี้จากไฟล์ที่มีชื่อแปลก ๆ )

หมายเหตุ: ลบโปรแกรมออกจากดิสก์เป็นผลข้างเคียงหรืออย่างน้อยก็พยายาม ในกรณีที่เรากำลังทำงานบน Windows ระบบปฏิบัติการจะไม่สามารถลบไฟล์ที่กำลังทำงานอยู่ (การดำเนินการที่ Windows ไม่อนุญาตโดยค่าเริ่มต้นหรือเต็มหยุด) และทำให้เกิดrmข้อผิดพลาด bashจับข้อผิดพลาดและแปลงเป็นรหัสออก (ดังนั้นโปรแกรมโดยรวมจะสิ้นสุดลงตามปกติ) รายการอื่น ๆ ส่วนใหญ่ที่นี่ใช้ 0 สำหรับความเท็จและ 1 สำหรับความจริงในรหัสออกดังนั้นสิ่งนี้จะเหมือนกัน ทราบว่าbashเป็นifคำสั่งไม่รับจำนวนเต็มที่ทุกคน (ค่อนข้างจะยอมรับคำสั่งและสาขาขึ้นอยู่กับว่าพวกเขาทำงานที่ประสบความสำเร็จและการทดสอบทางคณิตศาสตร์จะทำผ่านทางวิธีการของโปรแกรมเช่นtestที่จงใจรายงาน "ผิดพลาด" ในการเปรียบเทียบที่ล้มเหลว) ดังนั้นนี่เป็นเหตุให้เกิดความสับสนในแง่ของกฎหมายมากกว่าโปรแกรมที่ส่งออกผ่านรหัสทางออกในภาษาที่ 0 นั้นถูกต้องในการifทดสอบคำสั่งและส่งโปรแกรมไปยังelseสาขา


4

8th , 11 ไบต์

 
os 1- not .
 

พิมพ์trueบน Windows falseบน Linux และ macOS แพลตฟอร์มอื่น ๆ ที่รองรับโดย 8th คือ Android, iOS และ Raspberry Pi แต่ฉันไม่สามารถทดสอบกับมันได้

รุ่นที่ไม่ได้อัปโหลด (พร้อมความคิดเห็น)

 
G:os  \ Return a number n indicating the operating system 
      \ 0 for Linux
      \ 1 for Windows 
      \ 2 for macOS
      \ 3 for Android 
      \ 4 for iOS 
      \ 5 for Raspberry Pi
n:1-  \ Subtract 1
G:not \ If Windows --> true, otherwise --> false
.     \ Print result
 

4

Python 3 (13 ไบต์)

import winreg

ส่งคืนที่มีรหัสการออกเป็นศูนย์ (โดยทั่วไปเป็นจริงในเชลล์) หากบน windows และด้วยรหัสการออกที่ไม่ใช่ศูนย์

ถ้าคุณชอบมันรอบวิธีอื่น ๆ มีวิธีที่ 12 import posixไบต์:


ฉันคิดว่านี่จะไม่ทำงานหากมีไฟล์ที่เรียกว่าwinreg.pyในไดเรกทอรีเดียวกัน
Zacharý

1
นอกจากนี้ตามกฎ: "รหัสที่ล้มเหลวในการรัน / คอมไพล์บนแพลตฟอร์มจะไม่นับเป็นค่าที่ไม่ถูกต้อง"
Zacharý

4

TrumpScriptขนาด 17 ไบต์

America is great.

ลองออนไลน์!


โปรแกรมนี้หากทำงานบน windows จะพิมพ์:

The big problem this country has is being PC

นี่ถือเป็นคุณค่าที่แท้จริง


เอาต์พุตว่างและค่าต่อไปนี้เป็นเท็จ:

Boycott all Apple products  until such time as Apple gives cellphone info to authorities regarding radical Islamic terrorist couple from Cal

เอาต์พุตว่างจะเกิดขึ้นในระบบ linux ใด ๆ (สำหรับโปรแกรมนี้) การตอบสนองของแอปเปิ้ลที่ยาวนานเกิดขึ้นบน Mac (สำหรับโปรแกรมใด ๆ ) บน TIO แบ็กเอนด์ (ฉันถือว่า) เป็นระบบปฏิบัติการ Unix ดังนั้นคุณจะได้รับค่าที่ผิดพลาดเท่านั้น ในคอมพิวเตอร์ของฉันฉันได้รับข้อความพีซี


ไม่แน่ใจ 100% ว่าสิ่งนี้ถือเป็นข้อความแสดงข้อผิดพลาด (ซึ่งจะทำให้คำตอบเป็นโมฆะ) แต่ถ้าคุณไม่ทราบเกี่ยวกับสิ่งนี้อาจเป็นเรื่องน่าหัวเราะสำหรับคุณ


โลกมาถึงยัง
ไง

@avaragecoder ทำให้ PYTHON ยอดเยี่ยมอีกครั้ง!
Magic Octopus Urn
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.