Jump to content
IGNORED

PCLINK.SYS support?


gozar

Recommended Posts

 

 

> as soon as I use PCL1: everything breaks down. The serial code called from pclink.cpp never receives anything and so times out.

 

 

PCLINK works well under Linux (sio2bsd was originally written for Unix/Linux) and since OS X is based on Linux, I would expect it to work under OS X, too.

 

Well, no. OS X is based on BSD, a totally different POSIX-compliant UNIX.

 

That said, I have been using RespeQt mostly from my Raspberry Pi in the last couple months which very much *IS* Linux. I tried to mount a folder to a disk slot in RespeQt and access it from SDX on my Atari but I couldn't get it to work. Is there an easy reference somewhere handy that explains not only what it's supposed to do (R/W access to a folder on the host), but how you actually do anything with that from SDX? I mean, ordinary ATR mages are easy and anyone who's ever used an A8 machine has no problem with "D1:," "D2:," etc. Suppose I mount a folder image from my RPi desktop onto RespeQt into the D3: slot. How do I access that folder from the SDX command line? "PCL3:"? "DPCL3"? Or ... something else?

Edited by DrVenkman
Link to comment
Share on other sites

Suppose I mount a folder image from my RPi desktop onto RespeQt into the D3: slot. How do I access that folder from the SDX command line? "PCL3:"? "DPCL3"? Or ... something else?

You would refer to it as PCL3: from the SDX command line. From the CIO (i.e. BASIC and most applications), you use DPCL3: (the "D" prefix simply causes the device name which follows it to be handled by the SDX kernel rather than the CIO).

 

Had a go at building RespeQt today (Hackintosh, Yosemite) as well but I'm all fingers and thumbs with Qt. Do I have to define Q_OS_LINUX as part of the build properties? I got a compile error on a call to MKDIR (wrong number of arguments), so I'm assuming Q_OS_LINUX is undefined. Even when I overcame that and the thing built, it completely ignored the virtual serial port (although console output showed it connected OK).

  • Like 1
Link to comment
Share on other sites

You would refer to it as PCL3: from the SDX command line. From the CIO (i.e. BASIC and most applications), you use DPCL3: (the "D" prefix simply causes the device name which follows it to be handled by the SDX kernel rather than the CIO).

 

Ah, thanks for that. I'll give it a go this evening after work.

 

 

 

Had a go at building RespeQt today (Hackintosh, Yosemite) as well but I'm all fingers and thumbs with Qt. Do I have to define Q_OS_LINUX as part of the build properties? I got a compile error on a call to MKDIR (wrong number of arguments), so I'm assuming Q_OS_LINUX is undefined. Even when I overcame that and the thing built, it completely ignored the virtual serial port (although console output showed it connected OK).

 

Hmm. It shouldn't be necessary at this point to do anything other than download the code, unzip it, open the 'respeqt.pro' file in Qt Creator and build it in order to get it to run locally, assuming you have Xcode and all the Qt stuff installed. If you want to build an app bundle you can distribute as a fully standalone app, you have to jump through a bunch of silly hoops regarding "deployment," and copy over some folders manually into the app bundle after it's all done. Tedious but I haven't figured another way yet.

 

Regarding the virtual serial port - could that be a permissions issue?

Link to comment
Share on other sites

You would refer to it as PCL3: from the SDX command line. From the CIO (i.e. BASIC and most applications), you use DPCL3: (the "D" prefix simply causes the device name which follows it to be handled by the SDX kernel rather than the CIO).

 

Had a go at building RespeQt today (Hackintosh, Yosemite) as well but I'm all fingers and thumbs with Qt. Do I have to define Q_OS_LINUX as part of the build properties? I got a compile error on a call to MKDIR (wrong number of arguments), so I'm assuming Q_OS_LINUX is undefined. Even when I overcame that and the thing built, it completely ignored the virtual serial port (although console output showed it connected OK).

You have to change

#ifdef Q_OS_LINUX

to

#if defined(Q_OS_LINUX) || defined(Q_OS_OSX)
Link to comment
Share on other sites

It shouldn't be necessary at this point to do anything other than download the code, unzip it, open the 'respeqt.pro' file in Qt Creator and build it in order to get it to run locally, assuming you have Xcode and all the Qt stuff installed. If you want to build an app bundle you can distribute as a fully standalone app, you have to jump through a bunch of silly hoops regarding "deployment," and copy over some folders manually into the app bundle after it's all done. Tedious but I haven't figured another way yet.

I had a real faff on with it. At first, the build kit defaulted to iOS, couldn't find the compiler, couldn't find make. Once I'd set them all up manually compilation worked at least. I find Qt a little unwieldy (13GB footprint!?).

 

Regarding the virtual serial port - could that be a permissions issue?

Best thing I can do is download your prior OS X build and test that just to eliminate other causes.

 

You have to change

#ifdef Q_OS_LINUX
to

#if defined(Q_OS_LINUX) || defined(Q_OS_OSX)

 

Ah: thanks. I didn't realise this was an automatically generated OS define. Will that get the menu bar in the proper place too?

Link to comment
Share on other sites

 

You have to change

#ifdef Q_OS_LINUX

to

#if defined(Q_OS_LINUX) || defined(Q_OS_OSX)

 

I'm not sure about #if defined statements related to user ID:

 

#ifdef Q_OS_LINUX
static uid_t our_uid = 0;
#endif


#ifdef Q_OS_LINUX
    our_uid = getuid();
#endif


#ifdef Q_OS_LINUX
    if (sb->st_uid != our_uid)        /* belongs to us? */
        return 1;
#endif


#ifdef Q_OS_LINUX
        if (sb.st_uid != our_uid)
        {
            if(D) qDebug() << "!n" << tr("'%1' wrong uid").arg(newpath);
            device[cunit].status.err = 170;
            goto complete;
        }
#endif

Windows has different concept than Linux in regard to file ownership, Android executes code with different user ID than the file owner, etc.

Perhaps checking if the file belongs to the user, which executes the code does not work either under OS X. In this case you should keep #ifdef Q_OS_LINUX

Edited by TheMontezuma
Link to comment
Share on other sites

Yeah FJC, Qt is a pain. 13GB sounds about right. Between that and Xcode, there's quite a hit to disk space for cross-platform development.

 

Oh as for the menu bar, there's an option buried somewhere in Qt Creator over on the UI panel to use the OS-specific setting for menus. I'd screenshot and point you to it if I was home right now. Sorry!

Edited by DrVenkman
Link to comment
Share on other sites

Yeah FJC, Qt is a pain. 13GB sounds about right. Between that and Xcode, there's quite a hit to disk space for cross-platform development.

Yeah: I'm thankful for a) the 2TB drive in the machine and b) fast broadband. :)

 

Oh as for the menu bar, there's an option buried somewhere in Qt Creator over on the UI panel to use the OS-specific setting for menus. I'd screenshot and point you to it if I was home right now. Sorry!

No problem: I'll find it. Thanks!

Link to comment
Share on other sites

 

I'm not sure about #if defined statements related to user ID:

 

#ifdef Q_OS_LINUX
static uid_t our_uid = 0;
#endif


#ifdef Q_OS_LINUX
    our_uid = getuid();
#endif


#ifdef Q_OS_LINUX
    if (sb->st_uid != our_uid)        /* belongs to us? */
        return 1;
#endif


#ifdef Q_OS_LINUX
        if (sb.st_uid != our_uid)
        {
            if(D) qDebug() << "!n" << tr("'%1' wrong uid").arg(newpath);
            device[cunit].status.err = 170;
            goto complete;
        }
#endif

Windows has different concept than Linux in regard to file ownership, Android executes code with different user ID than the file owner, etc.

Perhaps checking if the file belongs to the user, which executes the code does not work either under OS X. In this case you should keep #ifdef Q_OS_LINUX

No, under OS X, you have a similar concept of file ownership as Linux, setuid exists!

My comment was regarding FJC's trouble with compiling under OSX.

Edited by JoSch
Link to comment
Share on other sites

1.) When I'm home, I will try to compile D with true.

2.) Yes, I know, but since there a lot #ifdef Q_OS_LINUX, but, as far as I see, no Q_OS_OSX. I had to change two occurences to get RespeQt to compile.

I want to add Q_OS_OSX to the occurrences of #ifdef Q_OS_LINUX.

3.) Yes, I see what you're driving at. But as I see it, the code never comes to sending the directory structure or accessing files, because it can't read the commands from the client (i.e. the computer).

That's what I got:

RespeQt started at Di. Juli 26 20:09:45 2016."
PCLINK[1] Mount /Volumes/Users/jochen/Downloads/Sys-Check Files V2_2 Release 20160717/Firmware"
[Disk 1] 'Firmware' als 'Verzeichnis Image' gemountet."
Starting emulation
Geschwindigkeit des seriellen Ports ist gesetzt auf 19200."
Emulation gestartet über serielles Port Backend auf '/dev/tty.usbserial-A9YL0XK4' mit DSR Handshaking."
Geschwindigkeit des seriellen Ports ist gesetzt auf 57600."
PCLINK Command=[$50] aux1=$24 aux2=$1 cunit=$1"
[PCLINK] P"
FOPEN (fno $9)"
mode: $14, atr1: $20, atr2: $0, path: '', name: '???????????'"
PCLINK Command=[$53] aux1=$24 aux2=$1 cunit=$1"
[PCLINK] Get status for [1]"
PCLINK Command=[$52] aux1=$24 aux2=$1 cunit=$1"
[PCLINK] R"
FOPEN (fno $9)"
local path '/Volumes/Users/jochen/Downloads/Sys-Check Files V2_2 Release 20160717/Firmware'"
OPEN DIR"
check_dos_name: got fname '.'"
check_dos_name: got fname '..'"
check_dos_name: got fname 'Flash SST39SF010A Sys-Check V1.4.BIN'"
check_dos_name: got fname 'Sys-Check II Firmware V1.4 copy.BIN'"
FOPEN: read handle 0"
check_dos_name: got fname '.'"
check_dos_name: got fname '..'"
check_dos_name: got fname 'Flash SST39SF010A Sys-Check V1.4.BIN'"
check_dos_name: got fname 'Sys-Check II Firmware V1.4 copy.BIN'"
FOPEN: send 0, send $28 $00 $0023 7765737832323232323232 26-7-16 19:30:34"
PCLINK Command=[$53] aux1=$24 aux2=$1 cunit=$1"
[PCLINK] Get status for [1]"
PCLINK Command=[$50] aux1=$1 aux2=$1 cunit=$1"
[PCLINK] P"
Serieller Port Timeout beim Lesen."
PCLINK Command=[$52] aux1=$1 aux2=$1 cunit=$1"
[PCLINK] R"
FOPEN (fno $9)"
local path '/Volumes/Users/jochen/Downloads/Sys-Check Files V2_2 Release 20160717/Firmware'"
OPEN DIR"
check_dos_name: got fname '.'"
check_dos_name: got fname '..'"
check_dos_name: got fname 'Flash SST39SF010A Sys-Check V1.4.BIN'"
check_dos_name: got fname 'Sys-Check II Firmware V1.4 copy.BIN'"
FOPEN: read handle 1"
check_dos_name: got fname '.'"
check_dos_name: got fname '..'"
check_dos_name: got fname 'Flash SST39SF010A Sys-Check V1.4.BIN'"
check_dos_name: got fname 'Sys-Check II Firmware V1.4 copy.BIN'"
FOPEN: send 1, send $28 $00 $0023 7765737832323232323232 26-7-16 19:30:34"
PCLINK Command=[$52] aux1=$1 aux2=$1 cunit=$1"
[PCLINK] R"
FOPEN (fno $9)"
serial communication error, abort"
PCLINK Command=[$52] aux1=$1 aux2=$1 cunit=$1"
[PCLINK] R"
FOPEN (fno $9)"
serial communication error, abort"
PCLINK Command=[$52] aux1=$1 aux2=$1 cunit=$1"
[PCLINK] R"
FOPEN (fno $9)"
serial communication error, abort"
PCLINK Command=[$52] aux1=$1 aux2=$1 cunit=$1"
[PCLINK] R"
FOPEN (fno $9)"
serial communication error, abort"
Geschwindigkeit des seriellen Ports ist gesetzt auf 19200."
PCLINK Command=[$d2] aux1=$1 aux2=$1 cunit=$1"
[PCLINK] command: $d2, aux: $0101 NAKed."
PCLINK Command=[$d2] aux1=$1 aux2=$1 cunit=$1"
[PCLINK] command: $d2, aux: $0101 NAKed."
PCLINK Command=[$d2] aux1=$1 aux2=$1 cunit=$1"
[PCLINK] command: $d2, aux: $0101 NAKed."
PCLINK Command=[$d2] aux1=$1 aux2=$1 cunit=$1"
[PCLINK] command: $d2, aux: $0101 NAKed."
PCLINK Command=[$d2] aux1=$1 aux2=$1 cunit=$1"
[PCLINK] command: $d2, aux: $0101 NAKed."
PCLINK Command=[$d2] aux1=$1 aux2=$1 cunit=$1"
[PCLINK] command: $d2, aux: $0101 NAKed."
PCLINK Command=[$d2] aux1=$1 aux2=$1 cunit=$1"
[PCLINK] command: $d2, aux: $0101 NAKed."
PCLINK Command=[$d2] aux1=$1 aux2=$1 cunit=$1"
[PCLINK] command: $d2, aux: $0101 NAKed."
PCLINK Command=[$d2] aux1=$1 aux2=$1 cunit=$1"
[PCLINK] command: $d2, aux: $0101 NAKed."
PCLINK Command=[$d2] aux1=$1 aux2=$1 cunit=$1"
[PCLINK] command: $d2, aux: $0101 NAKed."
PCLINK Command=[$d2] aux1=$1 aux2=$1 cunit=$1"
[PCLINK] command: $d2, aux: $0101 NAKed."
PCLINK Command=[$d2] aux1=$1 aux2=$1 cunit=$1"
[PCLINK] command: $d2, aux: $0101 NAKed."
PCLINK Command=[$d2] aux1=$1 aux2=$1 cunit=$1"
[PCLINK] command: $d2, aux: $0101 NAKed."
PCLINK Command=[$d2] aux1=$1 aux2=$1 cunit=$1"
[PCLINK] command: $d2, aux: $0101 NAKed."
PCLINK Command=[$d2] aux1=$1 aux2=$1 cunit=$1"
[PCLINK] command: $d2, aux: $0101 NAKed."
PCLINK Command=[$d2] aux1=$1 aux2=$1 cunit=$1"
[PCLINK] command: $d2, aux: $0101 NAKed."
PCLINK Command=[$d2] aux1=$1 aux2=$1 cunit=$1"
[PCLINK] command: $d2, aux: $0101 NAKed."
PCLINK Command=[$d2] aux1=$1 aux2=$1 cunit=$1"
[PCLINK] command: $d2, aux: $0101 NAKed."
PCLINK Command=[$d2] aux1=$1 aux2=$1 cunit=$1"
[PCLINK] command: $d2, aux: $0101 NAKed."
PCLINK Command=[$d2] aux1=$1 aux2=$1 cunit=$1"
[PCLINK] command: $d2, aux: $0101 NAKed."
PCLINK Command=[$d2] aux1=$1 aux2=$1 cunit=$1"
[PCLINK] command: $d2, aux: $0101 NAKed."
PCLINK Command=[$52] aux1=$1 aux2=$1 cunit=$1"
[PCLINK] R"
FOPEN (fno $9)"
serial communication error, abort"
PCLINK Command=[$52] aux1=$1 aux2=$1 cunit=$1"
[PCLINK] R"
FOPEN (fno $9)"
serial communication error, abort"
PCLINK Command=[$52] aux1=$1 aux2=$1 cunit=$1"
[PCLINK] R"
FOPEN (fno $9)"
serial communication error, abort"
PCLINK Command=[$52] aux1=$1 aux2=$1 cunit=$1"
[PCLINK] R"
FOPEN (fno $9)"
serial communication error, abort"
PCLINK Command=[$52] aux1=$1 aux2=$1 cunit=$1"
[PCLINK] R"
FOPEN (fno $9)"
serial communication error, abort"
PCLINK Command=[$52] aux1=$1 aux2=$1 cunit=$1"
[PCLINK] R"
FOPEN (fno $9)"
serial communication error, abort"
PCLINK Command=[$52] aux1=$1 aux2=$1 cunit=$1"
[PCLINK] R"
FOPEN (fno $9)"
serial communication error, abort"
PCLINK Command=[$52] aux1=$1 aux2=$1 cunit=$1"
[PCLINK] R"
FOPEN (fno $9)"
serial communication error, abort"
PCLINK Command=[$52] aux1=$1 aux2=$1 cunit=$1"
[PCLINK] R"
FOPEN (fno $9)"
serial communication error, abort"
PCLINK Command=[$52] aux1=$1 aux2=$1 cunit=$1"
[PCLINK] R"
FOPEN (fno $9)"
serial communication error, abort"
PCLINK Command=[$52] aux1=$1 aux2=$1 cunit=$1"
[PCLINK] R"
FOPEN (fno $9)"
serial communication error, abort"
PCLINK Command=[$52] aux1=$1 aux2=$1 cunit=$1"
[PCLINK] R"
FOPEN (fno $9)"
serial communication error, abort"
PCLINK Command=[$52] aux1=$1 aux2=$1 cunit=$1"
[PCLINK] R"
FOPEN (fno $9)"
serial communication error, abort"
PCLINK Command=[$52] aux1=$1 aux2=$1 cunit=$1"
[PCLINK] R"
FOPEN (fno $9)"
serial communication error, abort"
PCLINK Command=[$52] aux1=$1 aux2=$1 cunit=$1"
[PCLINK] R"
FOPEN (fno $9)"
serial communication error, abort"
Geschwindigkeit des seriellen Ports ist gesetzt auf 57600."
PCLINK Command=[$50] aux1=$2 aux2=$1 cunit=$1"
[PCLINK] P"
Serieller Port Timeout beim Lesen."
Link to comment
Share on other sites

[PCLINK] Get status for [1]"

PCLINK Command=[$50] aux1=$1 aux2=$1 cunit=$1"

[PCLINK] P"

Serieller Port Timeout beim Lesen."

 

The first error is on the lower communication level (not on the PCLINK protocol level).

After getting status, PCLINK driver (on the ATARI) sends SIO command $50 (P=parameters).

This command is followed by a data frame with parameter block. And the data frame could not be read (serial port timeout).

 

What we know about it is:

DAUX1=1 means following data frame size should be 1

DAUX2=1 -> CUNIT=1 -> PCLINK=1

 

Please try if it works better if you set the baudrate to 19200 (you started with 57600).

Another remark (not related to the timeout problem): PCLINK accepts only files in lower case and with short names (8+3).

Even if the serial communication would work, you still wouldn't see your files (like: Flash SST39SF010A Sys-Check V1.4.BIN).

 

FJC had recently similar problem and the root cause was his SIO2PC/USB cable...

  • Like 2
Link to comment
Share on other sites

Well, the same cable works under Windows with your PCLINK build.

Also, every other comminication works just fine with my build on OSX. It's only when PCLINK comes into play, that things go wrong.

I already tried it with 19200, but that doesn't change anything.

Concerning the filenames: yes, that was simply what I had open. At the moment I'm mostly concerned with getting a reliable communication going.

Link to comment
Share on other sites

I looked at the code.

In serialport-unix.cpp there is a method: readRawFrame() which reads data from the serial line.

I relized that for SIO2BT purpouses I doubled the timeouts, so you can easily re-test (without re-compailing the code).

 

Could you set the handshake method to "Software (SIO2BT)", "Write Delay" to 0 ms and try once more?

Did it help?

Link to comment
Share on other sites

Yes, it did. But even when I use another directory with valid names, it displays nothing on the client side.

Now I get this:

RespeQt started at Mi. Juli 27 00:26:54 2016."
PCLINK[1] Mount /Volumes/Users/jochen/Downloads/corewars"
[Disk 1] 'corewars' als 'Verzeichnis Image' gemountet."
Starting emulation
Geschwindigkeit des seriellen Ports ist gesetzt auf 19200."
Emulation gestartet über serielles Port Backend auf '/dev/tty.usbserial-A9YL0XK4' mit SOFTWARE (SIO2BT) Handshaking."
PCLINK Command=[$50] aux1=$24 aux2=$1 cunit=$1"
[PCLINK] P"
FOPEN (fno $9)"
mode: $14, atr1: $20, atr2: $0, path: '', name: '???????????'"
PCLINK Command=[$53] aux1=$24 aux2=$1 cunit=$1"
[PCLINK] Get status for [1]"
PCLINK Command=[$52] aux1=$24 aux2=$1 cunit=$1"
[PCLINK] R"
FOPEN (fno $9)"
local path '/Volumes/Users/jochen/Downloads/corewars'"
OPEN DIR"
check_dos_name: got fname '.'"
check_dos_name: got fname '..'"
check_dos_name: got fname 'corewars.man'"
check_dos_name: stat 'corewars.man'"
check_dos_name: got fname 'cre'"
check_dos_name: stat 'cre'"
check_dos_name: got fname 'mars.com'"
check_dos_name: stat 'mars.com'"
check_dos_name: got fname 'mars.man'"
check_dos_name: stat 'mars.man'"
check_dos_name: got fname 'rc.com'"
check_dos_name: stat 'rc.com'"
check_dos_name: got fname 'rc.man'"
check_dos_name: stat 'rc.man'"
check_dos_name: got fname 'red'"
check_dos_name: stat 'red'"
check_dos_name: got fname 'redcode.man'"
check_dos_name: stat 'redcode.man'"
FOPEN: read handle 0"
check_dos_name: got fname '.'"
check_dos_name: got fname '..'"
check_dos_name: got fname 'corewars.man'"
check_dos_name: stat 'corewars.man'"
check_dos_name: got fname 'cre'"
check_dos_name: stat 'cre'"
check_dos_name: got fname 'mars.com'"
check_dos_name: stat 'mars.com'"
check_dos_name: got fname 'mars.man'"
check_dos_name: stat 'mars.man'"
check_dos_name: got fname 'rc.com'"
check_dos_name: stat 'rc.com'"
check_dos_name: got fname 'rc.man'"
check_dos_name: stat 'rc.man'"
check_dos_name: got fname 'red'"
check_dos_name: stat 'red'"
check_dos_name: got fname 'redcode.man'"
check_dos_name: stat 'redcode.man'"
FOPEN: send 0, send $28 $00 $0023 7765737832323232323232 4-12-10 7:8:46"
PCLINK Command=[$53] aux1=$24 aux2=$1 cunit=$1"
[PCLINK] Get status for [1]"
PCLINK Command=[$50] aux1=$1 aux2=$1 cunit=$1"
[PCLINK] P"
DFREE (fno $13)"
device $1"
PCLINK Command=[$52] aux1=$1 aux2=$1 cunit=$1"
[PCLINK] R"
DFREE (fno $13)"
reading '/Volumes/Users/jochen/Downloads/corewars/.PCLINK.VOLUME.LABEL'"
DFREE: send info (64 bytes)"
PCLINK Command=[$50] aux1=$2 aux2=$1 cunit=$1"
[PCLINK] P"
FNEXT (fno $6)"
device $1"
PCLINK Command=[$52] aux1=$2 aux2=$1 cunit=$1"
[PCLINK] R"
FNEXT (fno $6)"
handle 0"
eof_flg 1"
FNEXT: EOF"
FNEXT: status 136, send $0 $00 $000 00000000000 0-0-0 0:0:0"
PCLINK Command=[$50] aux1=$2 aux2=$1 cunit=$1"
[PCLINK] P"
FCLOSE (fno $7)"
handle 0"
Link to comment
Share on other sites

That's why I posted my recommendation before, maybe it is worth to try it...

I don't understand, what you want to say. The log clearly states that the files in this directory on my mac is enumerated. "DIR PCL1:" renders nothing.

Also, the files are all readable (the log shows that) and I also activated the whole Unix user control stuff, you had in your code.

I can't read any log stating something about wrong uids.

Link to comment
Share on other sites

Well, the check is supposed to filter out filename, that are not yours. This works on OSX the same as on Linux.

 

Firstly, the referenced files are created by the logged in user, so I don't see, how the check ever can fail.

 

Secondly, when I jump over the check and then accessing the file, I can't access, nobody is helped.

If you ask me as a computer scientist, I would tell you that jumping over a check just over the sake of listing something that shouldn't be listed is simply bad programming.

Link to comment
Share on other sites

Well, as a computer scientist with Unix background you probably also know that this check makes not much sense there as the permissions are handled at the os level and the os, if well configured, will prevent you

from accessing someone else's files. Setuid magic is a bad practice here and it's not needed also to access serial port device file in this case (unless something is very different on Macs).

 

W.

Link to comment
Share on other sites

Well, as a computer scientist with Unix background you probably also know that this check makes not much sense there as the permissions are handled at the os level and the os, if well configured, will prevent you

from accessing someone else's files. Setuid magic is a bad practice here and it's not needed also to access serial port device file in this case (unless something is very different on Macs).

 

W.

Valid point. But then I have to ask: Why are these checks there in the first place?

Link to comment
Share on other sites

If you ask me as a computer scientist, I would tell you that jumping over a check just over the sake of listing something that shouldn't be listed is simply bad programming.

 

Well, actually nobody asked you about your opinion.

We only have tried to help, but it looks like, you know everything better.

Link to comment
Share on other sites

Valid point. But then I have to ask: Why are these checks there in the first place?

 

I guess that it's an attempt to check if the user has elevated priviledges, what's probably leading to some confusion, because you don't have to be the owner of files to access them (even rw).

 

W.

Link to comment
Share on other sites

 

I guess that it's an attempt to check if the user has elevated priviledges, what's probably leading to some confusion, because you don't have to be the owner of files to access them (even rw).

 

W.

 

Maybe a kind of a content protection, so you do not delete (accidentally) files that do not belong to you.

I think, only Drac030 can explain what did he mean with this check ;)

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...