Автор Тема: xfce, slackware, право за четене на файл  (Прочетена 223 пъти)

laskov

  • Напреднали
  • *****
  • Публикации: 2925
    • Профил
xfce, slackware

Пиша програмка, която чете по един и същ начин два файла. Единият е текстов, а другият - изображение.

И двата файла са с права -rwxr--r-- и собственост root.root

Текстовият е в /usr/local/etc  . Нямам никакъв проблем с четенето му.
Картинката, независимо в коя директория се намира, получавам грешка при четене "Access Denied". В терминал нямам проблем с четенето и. Ако сменя собствеността с тази на потребителя или добавя право за писане, грешката изчезва.

След много експерименти отхвърлих грешка в програмата. Какво мога да направя, освен варианта с даване на права за запис върху файла?
Активен

Не си мислете, че понеже Вие мислите правилно, всички мислят като Вас! Затова, когато има избори, идете и гласувайте, за да не сте изненадани после от резултата, и за да не твърди всяка партия, че тя е спечелила, а Б.Б. (С.С., ...) е загубил, а трети да управлява.  Наздраве!  [_]3

jet

  • Напреднали
  • *****
  • Публикации: 2162
  • Distribution: debian
  • Window Manager: kde
    • Профил
Re: xfce, slackware, право за четене на файл
« Отговор #1 -: Mar 05, 2021, 19:09 »
Излиза, че програмката с която "четеш" картинката се мъчи да я отваря и за писане - твоя програмка ли е или някоя известна.
Активен

..⢀⣴⠾⠻⢶⣦⠀
  ⣾⠁⢠⠒⠀⣿⡁
  ⢿⡄⠘⠷⠚⠋
  ⠈⠳⣄⠀⠀⠀⠀  Debian, the universal operating system.

Naka

  • Напреднали
  • *****
  • Публикации: 2882
    • Профил
Re: xfce, slackware, право за четене на файл
« Отговор #2 -: Mar 05, 2021, 20:20 »
Да не би да се мъчи да променя някой exif флаг по картинката..
А те са много... Нещо от рода на last accessed ???. ....
То и exif-а вече не се наричаше така ами има още няколко по нови (и собственически) стандарта тип exif.
Активен

Perl - the only language that looks the same before and after encryption.

jet

  • Напреднали
  • *****
  • Публикации: 2162
  • Distribution: debian
  • Window Manager: kde
    • Профил
Re: xfce, slackware, право за четене на файл
« Отговор #3 -: Mar 05, 2021, 21:13 »
В повечето езици за писане като отваряш файл, казваш и как да бъде отворен - за четене, за писане и т.н.

Например fopen C и С++
r"   read: Open file for input operations. The file must exist.
"w"   write: Create an empty file for output operations. If a file with the same name already exists, its contents are discarded and the file is treated as a new empty file.
"a"   append: Open file for output at the end of a file. Output operations always write data at the end of the file, expanding it. Repositioning operations (fseek, fsetpos, rewind) are ignored. The file is created if it does not exist.
"r+"   read/update: Open a file for update (both for input and output). The file must exist.
"w+"   write/update: Create an empty file and open it for update (both for input and output). If a file with the same name already exists its contents are discarded and the file is treated as a new empty file.
"a+"   append/update: Open a file for update (both for input and output) with all output operations writing data at the end of the file.


fopen Php:
'r'   Open for reading only; place the file pointer at the beginning of the file.
'r+'   Open for reading and writing; place the file pointer at the beginning of the file.
'w'   Open for writing only; place the file pointer at the beginning of the file and truncate the file to zero length. If the file does not exist, attempt to create it.
'w+'   Open for reading and writing; place the file pointer at the beginning of the file and truncate the file to zero length. If the file does not exist, attempt to create it.
'a'   Open for writing only; place the file pointer at the end of the file. If the file does not exist, attempt to create it. In this mode, fseek() has no effect, writes are always appended.
'a+'   Open for reading and writing; place the file pointer at the end of the file. If the file does not exist, attempt to create it. In this mode, fseek() only affects the reading position, writes are always appended.
'x'   Create and open for writing only; place the file pointer at the beginning of the file. If the file already exists, the fopen() call will fail by returning false and generating an error of level E_WARNING. If the file does not exist, attempt to create it. This is equivalent to specifying O_EXCL|O_CREAT flags for the underlying open(2) system call.
'x+'   Create and open for reading and writing; otherwise it has the same behavior as 'x'.
'c'   Open the file for writing only. If the file does not exist, it is created. If it exists, it is neither truncated (as opposed to 'w'), nor the call to this function fails (as is the case with 'x'). The file pointer is positioned on the beginning of the file. This may be useful if it's desired to get an advisory lock (see flock()) before attempting to modify the file, as using 'w' could truncate the file before the lock was obtained (if truncation is desired, ftruncate() can be used after the lock is requested).
'c+'   Open the file for reading and writing; otherwise it has the same behavior as 'c'.
'e'   Set close-on-exec flag on the opened file descriptor. Only available in PHP compiled on POSIX.1-2008 conform systems.
Активен

..⢀⣴⠾⠻⢶⣦⠀
  ⣾⠁⢠⠒⠀⣿⡁
  ⢿⡄⠘⠷⠚⠋
  ⠈⠳⣄⠀⠀⠀⠀  Debian, the universal operating system.

spec1a

  • Напреднали
  • *****
  • Публикации: 1469
    • Профил
Re: xfce, slackware, право за четене на файл
« Отговор #4 -: Mar 05, 2021, 21:21 »
xfce, slackware

Пиша програмка, която чете по един и същ начин два файла. Единият е текстов, а другият - изображение.

И двата файла са с права -rwxr--r-- и собственост root.root

Текстовият е в /usr/local/etc  . Нямам никакъв проблем с четенето му.
Картинката, независимо в коя директория се намира, получавам грешка при четене "Access Denied". В терминал нямам проблем с четенето и. Ако сменя собствеността с тази на потребителя или добавя право за писане, грешката изчезва.

След много експерименти отхвърлих грешка в програмата. Какво мога да направя, освен варианта с даване на права за запис върху файла?

   Да не би да има някакви специфични флагове ?
Виж какво ти дават командите:

getfacl file
lsattr file
Активен

laskov

  • Напреднали
  • *****
  • Публикации: 2925
    • Профил
Re: xfce, slackware, право за четене на файл
« Отговор #5 -: Mar 06, 2021, 01:45 »
Оказа се, че четенето не е едно и също четене. Четенето в буфер иска права за запис, а четенето на стринг - не.

В единия случай ползвам BlockRead, а за текстовия файл - ReadLn

Ако се опитам да чета текстовия файл с BlockRead получавам същата грешка, каквато и за изображението.
« Последна редакция: Mar 06, 2021, 01:48 от laskov »
Активен

Не си мислете, че понеже Вие мислите правилно, всички мислят като Вас! Затова, когато има избори, идете и гласувайте, за да не сте изненадани после от резултата, и за да не твърди всяка партия, че тя е спечелила, а Б.Б. (С.С., ...) е загубил, а трети да управлява.  Наздраве!  [_]3

remotexx

  • Напреднали
  • *****
  • Публикации: 1144
    • Профил
Re: xfce, slackware, право за четене на файл
« Отговор #6 -: Mar 06, 2021, 10:29 »
Колега,  от нечетене е цялата работа.  При положение че още от време оно Борланд и в частност  обектния паскал  покрай  тях идват с най добрата  документация

Файла трябва да се отвори с Reset за четене като предварително му се смени подразбиращата стойност на filemode от 2/RW  на 0/RO

Reset
Open file for reading
...
Description
Reset opens a file F for reading. F can be any file type. If F is a text file, or refers to standard I/O (e.g : '') then it is opened read-only, otherwise it is opened using the mode specified in filemode.
...
FileMode
Default file mode for untyped files.

Declaration
Source position: systemh.inc line 696

const FileMode: Byte = 2;

Description
FileMode determines how untyped files are opened for reading with Reset. It can have the following values:

0.  open file readonly
1.  open file write only
2.  open file read/write
https://www.freepascal.org/docs-html/rtl/system/filemode.html

May the source be with you
https://m.youtube.com/watch?v=QE-fUAnIfw0&t=1m30s

П.П. и както казваше един бивш колега в подписа си /викам му бивш само щото не съм му виждал скоро подписа/ - нечетенето /5 мин./ на документация/та не спестява 2 часа некликане с мишката после  :P
« Последна редакция: Mar 06, 2021, 11:12 от remotexx »
Активен

go_fire

  • Global Moderator
  • Напреднали
  • *****
  • Публикации: 6205
  • Distribution: Дебиан Сид
  • Window Manager: ROX-Desktop / е17
  • кашик с гранатомет в танково поделение
    • Профил
    • WWW
Re: xfce, slackware, право за четене на файл
« Отговор #7 -: Mar 06, 2021, 10:36 »
E, все пак Вальо не е програмист. Пише на FreePascal (може би защото го е учил), за да си решава належащи проблеми. Не искам да казвам нищо за работодателя му, защото преди няколко години ми се обиди, като казах нещо. Но в общи линии бюджет няма и Вальо трябва да владее магия и билкарство, за да работят нещата. Хич не му е лесно.
Активен

В $por4e2 e истината  ;)

***

Aко даваха стипендия за най-глупави, щях да съм човека с най-много Mини Kупъри

***

Reborn since 1998 || 15.09.2007 totally М$ free && conscience clear

laskov

  • Напреднали
  • *****
  • Публикации: 2925
    • Профил
Re: xfce, slackware, право за четене на файл
« Отговор #8 -: Mar 06, 2021, 18:09 »
Колега,  от нечетене е цялата работа.
Тъкмо си мислех, че съм открил бъг! :) (за пореден път :)  )

Благодаря! Благодаря на всички прочели и писали, също!

... преди няколко години ми се обиди, като казах нещо. ...
Не си спомням. Извинявай, ако съм реагирал емоционално!
Активен

Не си мислете, че понеже Вие мислите правилно, всички мислят като Вас! Затова, когато има избори, идете и гласувайте, за да не сте изненадани после от резултата, и за да не твърди всяка партия, че тя е спечелила, а Б.Б. (С.С., ...) е загубил, а трети да управлява.  Наздраве!  [_]3

go_fire

  • Global Moderator
  • Напреднали
  • *****
  • Публикации: 6205
  • Distribution: Дебиан Сид
  • Window Manager: ROX-Desktop / е17
  • кашик с гранатомет в танково поделение
    • Профил
    • WWW
Re: xfce, slackware, право за четене на файл
« Отговор #9 -: Mar 06, 2021, 18:31 »
А, не прав си си. Сигурно щях да направя абсолютно същото. Човек малко или много се отъждествява с работодателя си. Всеки ден хвърля половината от него в усилия да избута още малко напред. Най-много важи за такива като теб, които са отдадени. Ние нищо не знаем и нищо не разбираме. Ние сме обикновени зяпачи и дърдорковци.

Всъщност случая беше поучителен за мен. Да не си вра много гегата, дето не ми е работа.

Поздрави!
Активен

В $por4e2 e истината  ;)

***

Aко даваха стипендия за най-глупави, щях да съм човека с най-много Mини Kупъри

***

Reborn since 1998 || 15.09.2007 totally М$ free && conscience clear

remotexx

  • Напреднали
  • *****
  • Публикации: 1144
    • Профил
Re: xfce, slackware, право за четене на файл
« Отговор #10 -: Mar 06, 2021, 19:49 »
E, все пак Вальо не е програмист. ...Не искам да казвам нищо за работодателя му, защото преди няколко години ми се обиди, като казах нещо.

А бе хора - обяснявайте като за компютърджий
Аз разбрах, че шефчето му се е обидил нещо  ???

https://vicove.com/vic-17592
Жена на програмист го праща до магазина и казва:
- Купи един салам. Ако има яйца вземи десет.
Програмистът се връща с десет салама от магазина. Жена му:
- Защо си купил десет салама!?
- Защо ли?!? Ами имаше яйца ...

П.П. Па и никой не иска да си пие биричката с 10 яйца  ;D
« Последна редакция: Mar 06, 2021, 19:52 от remotexx »
Активен

go_fire

  • Global Moderator
  • Напреднали
  • *****
  • Публикации: 6205
  • Distribution: Дебиан Сид
  • Window Manager: ROX-Desktop / е17
  • кашик с гранатомет в танково поделение
    • Профил
    • WWW
Re: xfce, slackware, право за четене на файл
« Отговор #11 -: Mar 06, 2021, 23:16 »
Не, аз не познавам шефа на Вальо, дори не припарих до работното му място, макар да имах огромно желание да се запознаем (и.л.и. и двамата сме плешиви и много си приличаме на външен вид, не чак близнаци), ама наистина не ми се говори. Едвам го омилостивих след последния път, нищо, че не помни. От как съм тук, напусна Съпорта, напусна Къпътена, напусна Версия. Аз съм най-лошия модератор на света. Вместо да привличам хора, непрекъснато се обиждат и напускат, въпреки неистовото ми желание да ги задържа.
« Последна редакция: Mar 06, 2021, 23:20 от go_fire »
Активен

В $por4e2 e истината  ;)

***

Aко даваха стипендия за най-глупави, щях да съм човека с най-много Mини Kупъри

***

Reborn since 1998 || 15.09.2007 totally М$ free && conscience clear