Open WuffyTopside opened 6 years ago
It looks like the code might not be doing quite what you think it's doing, though, admittedly, it'd be nice if lci reported the errors more intuitively.
First, I HAS A file ITZ I IZ STDIO'Z OPEN YR "/usr/lol/file.txt" AN YR "r" MKAY
roughly translates to fopen("/usr/lol/file.txt", "r")
. Unix documentation ( http://man7.org/linux/man-pages/man3/fopen.3.html ) states that to write to a file, you'll need to open in "w" or "w+" mode rather than "r" mode.
Second, I think the error checking in this code is inverted. I IZ STDIO'Z DIAF YR file MKAY
translates to ferror(file)
. This is wrapped in a translation to a TROOF, where WIN
is an error and FAIL
indicates no error.
All that to say, I think LCI is working correctly (although maybe those segfaults should be replaced by some legible error messages). Here's a potential fix for your code that seems to work for me:
HAI 1.4
CAN HAS STDIO?
I HAS A var ITZ "HAI!!!1!"
I HAS A file ITZ I IZ STDIO'Z OPEN YR "/usr/lol/file.txt" AN YR "w" MKAY
I IZ STDIO'Z DIAF YR file MKAY
O RLY?
YA RLY
INVISIBLE "I can't open ur file!!!1!"
NO WAI
I IZ STDIO'Z SCRIBBEL YR file AN YR var MKAY
OIC
I IZ STDIO'Z CLOSE YR file MKAY
KTHXBYE
I'm using the future branch of lci, and whenever I run a program to write a YARN to a file, I get a Segmentation Fault. The Program is below:
HAI 1.4
CAN HAS STDIO?
I HAS A var ITZ "HAI!!!1!"
I HAS A file ITZ I IZ STDIO'Z OPEN YR "/usr/lol/file.txt" AN YR "r" MKAY
I IZ STDIO'Z DIAF YR file MKAY O RLY? YA RLY I IZ STDIO'Z SCRIBBEL YR file AN YR var MKAY NO WAI INVISIBLE "I can't open ur file!!!1!" OIC
I IZ STDIO'Z CLOSE YR file MKAY
KTHXBYE