Чтение из /proc (Чтение данных из /proc)

Модератор: Модераторы разделов

Аватара пользователя
LilFox
Сообщения: 137
Статус: ^^.,
ОС: Gentoo Linux

Чтение из /proc

Сообщение LilFox »

Доброго здравия.
Так нужно прочитать данные из /proc/ системы, в часности /proc/cmdline - там храниться параметры загрузки ядра. И это надо прочитать.
Best Wishes. LilFox
Won't someone help me find my little Clare.
Спасибо сказали:
MedVed
Сообщения: 112

Re: Чтение из /proc

Сообщение MedVed »

Я, конечно, могу ошибаться, но разве open(...) / gets(...) не сработают? (это если на C). Соотвественно, fstream в С++.
Или NIX не дает читать proc/cmdline как обычный файл?
МСВС 3.0/Linux Mandrake 8.0
Спасибо сказали:
Аватара пользователя
LilFox
Сообщения: 137
Статус: ^^.,
ОС: Gentoo Linux

Re: Чтение из /proc

Сообщение LilFox »

Ну я пробывал прочесть как pipe или как говорится бинарник - ничего, пусто...
Мне нужен С, С++ не нужен ;)
Best Wishes. LilFox
Won't someone help me find my little Clare.
Спасибо сказали:
Аватара пользователя
polachok
Бывший модератор
Сообщения: 2199
Статус: главный форумный маргинал
ОС: gnu/linux

Re: Чтение из /proc

Сообщение polachok »

ну а просто cat'ом читается? cat /proc/cmdline ?
И немедленно выпил.
Спасибо сказали:
Аватара пользователя
FreeNUX
Сообщения: 185
Статус: с сириуса
ОС: FreeBSD 6.2

Re: Чтение из /proc

Сообщение FreeNUX »

Попробуй man stdio
Аркона – лишь тихие воды,
Кровью варяжской янтарь в них застыл.
Аркона – там ветер со взморья
В трещинах скал своё сердце забыл.
Темнозорь - Аркона (Вольницей В Просинь Ночей - 2005)
Спасибо сказали:
Аватара пользователя
LilFox
Сообщения: 137
Статус: ^^.,
ОС: Gentoo Linux

Re: Чтение из /proc

Сообщение LilFox »

Для polachok: Угу, но мне Не нужен cat ни less - мне нужен код...
Для FreeNUX: Вот уж там точно ничго нет.
Best Wishes. LilFox
Won't someone help me find my little Clare.
Спасибо сказали:
Аватара пользователя
d_Sun
Сообщения: 291

Re: Чтение из /proc

Сообщение d_Sun »

open() и read() - должны работать...
Моя подпись сильно длинная :)
Спасибо сказали:
Аватара пользователя
LilFox
Сообщения: 137
Статус: ^^.,
ОС: Gentoo Linux

Re: Чтение из /proc

Сообщение LilFox »

Код: Выделить всё

#include <stdio.h>
#include <fcntl.h>
#include <sys/types.h>
#include <sys/stat.h>
int main(int argc, char** argv)
{
 int fd;
 FILE *file;
 char cmdline[256]="";
 fd = open("/proc/cmdline", O_RDONLY);
 if (fd == -1) ///ЭЭЭ, я совсем забыл умный метод !fd;)
  perror("open:");
 while (read(fd,cmdline,256)); //reading the line
 printf("cmdline: %n",cmdline);
 close(fd);
 return 0;//success
}

Не работает ;)
Best Wishes. LilFox
Won't someone help me find my little Clare.
Спасибо сказали:
Аватара пользователя
d_Sun
Сообщения: 291

Re: Чтение из /proc

Сообщение d_Sun »

Код: Выделить всё

#include <stdio.h>
#include <unistd.h>
#include <fcntl.h>


int main()
{
  char cmdline [ 256 ] = "";
  int fd = open ( "/proc/cmdline", O_RDONLY );

  while ( read ( fd, cmdline, sizeof ( cmdline ) ) > 0 )
  {
    printf ( "Params: %s", cmdline );
  }

  return 0;
}


P.S. Учим С/С++! :devil_2:
Моя подпись сильно длинная :)
Спасибо сказали:
Аватара пользователя
LilFox
Сообщения: 137
Статус: ^^.,
ОС: Gentoo Linux

Re: Чтение из /proc

Сообщение LilFox »

ТАк, чуствую меня так никгода не пинало - хотя было несколько раз :

Код: Выделить всё

printf("cmdline: %n",cmdline);

на

Код: Выделить всё

printf("cmdline: %s\n",cmdline);

Видать когда писал выпустил, недописал два символа =).

P.S
Учим С, С++ не учим!
Best Wishes. LilFox
Won't someone help me find my little Clare.
Спасибо сказали:
Аватара пользователя
d_Sun
Сообщения: 291

Re: Чтение из /proc

Сообщение d_Sun »

([MP]DisconNecT @ Вторник, 26 Июля 2005, 5:23) писал(а):P.S
Учим С, С++ не учим!


Очень даже зря! :) На плюсах это выглядит гараздо красивее...

Код: Выделить всё

#include <iostream>
#include <fstream>
#include <string>
using namespace std;


int main()
{
  string sBuf;
  ifstream ifsCmdLine ( "/proc/cmdline" );

  while ( ! ifsCmdLine.eof() )
  {
    getline ( ifsCmdLine, sBuf );
    cout<<sBuf<<endl;
  }

  ifsCmdLine.close();

  return 0;
}
Моя подпись сильно длинная :)
Спасибо сказали:
Аватара пользователя
LilFox
Сообщения: 137
Статус: ^^.,
ОС: Gentoo Linux

Re: Чтение из /proc

Сообщение LilFox »

Да я не спорю, но мне нужен С, а не С++.
Эх, а чтобы кто не говорил В Никсах Рулит С а не его старший брат - кто бы что не говорил, ФАКТЫ НА ЛИЦО.
Я так понимаю, это Linux'овый форум??? )

ЛАдно вобщем с /proc разобрались - может у кого появятся вопросы ;)....
Best Wishes. LilFox
Won't someone help me find my little Clare.
Спасибо сказали:
Аватара пользователя
d_Sun
Сообщения: 291

Re: Чтение из /proc

Сообщение d_Sun »

([MP]DisconNecT @ Среда, 27 Июля 2005, 22:30) писал(а):Да я не спорю, но мне нужен С, а не С++.
Эх, а чтобы кто не говорил В Никсах Рулит С а не его старший брат - кто бы что не говорил, ФАКТЫ НА ЛИЦО.
Я так понимаю, это Linux'овый форум??? )

ЛАдно вобщем с /proc разобрались - может у кого появятся вопросы ;)....


Неа :P В Никсах можно написать на С++ все, и не мение эффективно чем на С! :P

P.S. Не хотелось бы разводить здесь флейм, но какие такие ФАКТЫ НА ЛИЦО? :devil_2:
Моя подпись сильно длинная :)
Спасибо сказали:
Аватара пользователя
LilFox
Сообщения: 137
Статус: ^^.,
ОС: Gentoo Linux

Re: Чтение из /proc

Сообщение LilFox »

Когды ты пишешь плагин на Сишнкую прогу - сишная прога так не думает, А НА СИ ой как многа прог - возмем одну единственную - ядро.
Best Wishes. LilFox
Won't someone help me find my little Clare.
Спасибо сказали:
Аватара пользователя
d_Sun
Сообщения: 291

Re: Чтение из /proc

Сообщение d_Sun »

([MP]DisconNecT @ Пятница, 29 Июля 2005, 11:12) писал(а):Когды ты пишешь плагин на Сишнкую прогу - сишная прога так не думает, А НА СИ ой как многа прог - возмем одну единственную - ядро.


:D Выдыхай бобер! Выдыхай! :D

З.Ы. Ниче не понял :)
Моя подпись сильно длинная :)
Спасибо сказали:
Аватара пользователя
FreeNUX
Сообщения: 185
Статус: с сириуса
ОС: FreeBSD 6.2

Re: Чтение из /proc

Сообщение FreeNUX »

Для [MP]DisconNecT:
Внимательнее смотреть надо, не обязательно использовать низкоуровневые - open(), write() и т. д.(это к вопросу о производительности), можно заюзать fopen() для открытия файла на чтение/запись и fgets() или getc() (по желанию), для чтения из этого файла.
Аркона – лишь тихие воды,
Кровью варяжской янтарь в них застыл.
Аркона – там ветер со взморья
В трещинах скал своё сердце забыл.
Темнозорь - Аркона (Вольницей В Просинь Ночей - 2005)
Спасибо сказали:
Аватара пользователя
LilFox
Сообщения: 137
Статус: ^^.,
ОС: Gentoo Linux

Re: Чтение из /proc

Сообщение LilFox »

Для d_Sun: Короче, попробуй на CPP настрочить какой-нить драйвер или что-нить под ядро :).
Best Wishes. LilFox
Won't someone help me find my little Clare.
Спасибо сказали:
Аватара пользователя
d_Sun
Сообщения: 291

Re: Чтение из /proc

Сообщение d_Sun »

([MP) писал(а):DisconNecT,Суббота, 30 Июля 2005, 6:16]Для d_Sun: Короче, попробуй на CPP настрочить какой-нить драйвер или что-нить под ядро :).


Короче попробовал :devil_2: И не один драйвер ( это моя работа - системный программист ) :devil_2: А в чем собственно проблема? Вы вообще хоть представление имеете о предмете ( С++ )? :devil_2: Похоже нет :D

З.Ы. Мир не такой узкий как вам кажется! :)

d_Sun добавил в 30.07.2005 11:59

(FreeNUX @ Суббота, 30 Июля 2005, 2:10) писал(а):Для [MP]DisconNecT:
Внимательнее смотреть надо, не обязательно использовать низкоуровневые - open(), write() и т. д.(это к вопросу о производительности), можно заюзать fopen() для открытия файла на чтение/запись и fgets() или getc() (по желанию), для чтения из этого файла.


Абсолютно верно! Более того read() в исполнений [MP]DisconNecT - понизит производительность в общем случае чтения файла :D т.к. не предусмотрен буфер соответствующего размера :) Но если сделать так:

Код: Выделить всё

#define SYSBUF 8192

int main()
{
  char cBuf [ SYSBUF ];

  int fd = open ( "/proc/cmdline", O_RDONLY );

  while ( ( read (  fd, cBuf, SYSBUF ) > 0 )
  {
    // Do some output? :)
  }

  return 0;
}


Производительность буде выше чем в случае fopen() и fgets() :)

Но это все фигня :megalol:

З.Ы. И еще забыл сказать что этот буфер может быть другого размера для другой unix os.
Моя подпись сильно длинная :)
Спасибо сказали:
Аватара пользователя
LilFox
Сообщения: 137
Статус: ^^.,
ОС: Gentoo Linux

Re: Чтение из /proc

Сообщение LilFox »

Для d_Sun: ДА имею =), но как не странно весь код дровишек наблюдал Сишный, может мне просто не везло и я не встречал Cpp-шный ;), сам пробывал написать - НЕполучилось, после этого выкинул я чортов CPP на свалку, а начал изучать Си ;)... вот и все
С планином, который мне пришлось писать - такая же ботва, xchat мне просто сказал - что такой-то symbol not found и все, даже если я компилил g++, а код был сишный - хотя в принципе УЖЕ не важно, я сам не против С++, но как и большинство Испозую Си и все, если от меня не требуется изобретать новую Микроволновку в проге - Си самое то ;)

Да я кстате уже напсилал, то зачем обращался ;)) - именно нА си И именно через open() и read() и Притом Использовал САМЫЕ что ненаесть Велосипедно-Богомерзкие движки для сортировки и принятия решения )))) - а так ничего работает ;)
Best Wishes. LilFox
Won't someone help me find my little Clare.
Спасибо сказали:
Аватара пользователя
d_Sun
Сообщения: 291

Re: Чтение из /proc

Сообщение d_Sun »

To [MP]DisconNecT:

Ок... Прекращаем этот бессмысленный спор :)
Моя подпись сильно длинная :)
Спасибо сказали: