Несколько вопросов по C/C++ (непосредственно для Linux)

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

Ответить
Аватара пользователя
Keeper
Сообщения: 209
Контактная информация:

Несколько вопросов по C/C++

Сообщение Keeper »

В общем я неплохо знаю Паскаль, но решил изучить эти языки.
Взялся писать программку на С++, вроде все понятно, НО пришлось перейти на чистый С, потому что не нашел, как в С++ создавать каталог (в С просто mkdir). Но в С столкнулся с проблемами:
1) Какой аналог "&" в С? т.е. я пришу void blabla (int &i) и он это не понимает. :(
2) Как преобразовать число в строку. Что уже только не пробывал, не получается. На itoa говорит, что не знает такого, и в stdlib.h его нет :(

Ну вроде пока все. Прошу ответить.
За ранее спасибо!
Спасибо сказали:
Аватара пользователя
flook
Сообщения: 585
Статус: Просто flook

Re: Несколько вопросов по C/C++

Сообщение flook »

1.
foo (int &i) в C не пашет
use pointers

2.
#include <stdlib.h>
strtol
Добавлено:
А вообще фраза "в C++ не пашет mkdir а в C пашет" весьма странна.
Синтаксис С++ на таком уровне совместим с С. (Ессно если есть возможность пересобрать прогу)
В каждом из нас спит гений... и с каждым днем все крепче...
Спасибо сказали:
Аватара пользователя
Keeper
Сообщения: 209
Контактная информация:

Re: Несколько вопросов по C/C++

Сообщение Keeper »

(flook @ Среда, 13 Октября 2004, 16:56) писал(а):1.
foo (int &i) в C не пашет
use pointers

2.
#include <stdlib.h>
strtol
Добавлено:
А вообще фраза "в C++ не пашет mkdir а в C пашет" весьма странна.
Синтаксис С++ на таком уровне совместим с С. (Ессно если есть возможность пересобрать прогу)


"в C++ не пашет mkdir а в C пашет" - это не моя фраза :) Я не говорил, что в С++ не пашет, просто я не нашел ее там (по крайней мере подключал то же, что и в С, а mkdir он так и не понял)

На счет (1) - можешь пример привести, честно говоря не въехал...

Возник еще один вопрос:
3) Есть ли какая-то возможнотсь вывести список директорий в какой-то папке (которую я указываю). Я так понял, надо копать в сторону opnedir и readdir, но пока что-то не вкуривается :(

На счет strtol:
long strol(nptr,endptr,base); преобразует строку в long десятичное целое, эквивалентное числу с данным основанием base.
А надо наоборот int в str...
Спасибо сказали:
Аватара пользователя
flook
Сообщения: 585
Статус: Просто flook

Re: Несколько вопросов по C/C++

Сообщение flook »

1)

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

void foo (int *x)
{
     *x = 10;
}
...
int i;
foo(&i);
/* now i = 10 */

3)
DIR *d = opendir(char *name) - вернет DIR*
int fd = dirfd(DIR *d) - вернет дескриптор
getdents(int fd, ...) - вернет список директорных записей (имен файлов и поддиректорий)

4) int в str сААвсем просто:

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

sprintf(str, "%d", i);
В каждом из нас спит гений... и с каждым днем все крепче...
Спасибо сказали:
Аватара пользователя
Keeper
Сообщения: 209
Контактная информация:

Re: Несколько вопросов по C/C++

Сообщение Keeper »

1) Уже сам вчера со знакомым разобрался, но все равно спасибо!!!
2) Вооо!!! То что надо :) Сегодня буду пробовать :)
3) Ага, отлично, а я через gcvt перевел :)

Большое спасибо!!!
Теперь буду знать, куда вопросы задавать :)

Кстати, не посоветуешь какую-нибудь книжку "для начинающих" по С именню для *nix?
Добавлено:
getdents - оно точно в Си есть? Что-то не находит он его :'(
Может оно только в C++?
Спасибо сказали:
Аватара пользователя
AndyX
Сообщения: 116

Re: Несколько вопросов по C/C++

Сообщение AndyX »

Я бы предложил А. Робачевского "Программирование в UNIX" - отличная книга.
I am in shape. Round is a shape.
Спасибо сказали:
Аватара пользователя
flook
Сообщения: 585
Статус: Просто flook

Re: Несколько вопросов по C/C++

Сообщение flook »

(Keeper @ Пятница, 15 Октября 2004, 16:25) писал(а):Может оно только в C++?


Что за странные вопросы?
man getdents грит что он есть.
Все. Натравливай gccна свое дерево - он сам разберется где у тя С где С++
В каждом из нас спит гений... и с каждым днем все крепче...
Спасибо сказали:
Аватара пользователя
Keeper
Сообщения: 209
Контактная информация:

Re: Несколько вопросов по C/C++

Сообщение Keeper »

[lex@BlackStar lex]$ man getdents
No manual entry for getdents
:(
Причем, попробывал в C++ тоже не понимает :( Что-то не везет мне сегодня...
Добавлено:
И зачем мне gcc натравливать, если я в KDevelop :) Он мне и так пишет, что не знаю я такой функции...
Добавлено:

Еще один вопрос вспомнил - модно ли как-то в Си отчистить консоль? Т.е. я хочу, чтобы при запуске моей проги, консоль отчищалась и приветствие моей программы появлялос ьв чистой консоли на первой строке :)
Спасибо сказали:
Аватара пользователя
DW
Бывший модератор
Сообщения: 662
Статус: и это еще не все или ничего.
Контактная информация:

Re: Несколько вопросов по C/C++

Сообщение DW »

кстати, кто-нибудь видел табличку соответствия вывода графики в ДОСе и Юникс ?
подумал -> выпил -> подумал -> ... но недавно врачи запретили пить.
Спасибо сказали:
Аватара пользователя
FreeNUX
Сообщения: 185
Статус: с сириуса
ОС: FreeBSD 6.2

Re: Несколько вопросов по C/C++

Сообщение FreeNUX »

Самая лучшая книжка по С - "Б. Керниган, Д. Ритчи, Язык программирования Си".
Аркона – лишь тихие воды,
Кровью варяжской янтарь в них застыл.
Аркона – там ветер со взморья
В трещинах скал своё сердце забыл.
Темнозорь - Аркона (Вольницей В Просинь Ночей - 2005)
Спасибо сказали:
Аватара пользователя
elide
Бывший модератор
Сообщения: 2421
Статус: Übermensch
ОС: лялих

Re: Несколько вопросов по C/C++

Сообщение elide »

модно ли как-то в Си отчистить консоль? Т.е. я хочу, чтобы при запуске моей проги, консоль отчищалась и приветствие моей программы появлялос ьв чистой консоли на первой строке
нет... это совсем не модно.... просто представь, что вывод идет не на экран, а, скажем, на матричный принтер... как ты себе представляешь очистку в данном случае? сжечь уже отпечатаную часть бумаги?
слава роботам!
Спасибо сказали:
Аватара пользователя
Keeper
Сообщения: 209
Контактная информация:

Re: Несколько вопросов по C/C++

Сообщение Keeper »

elide

Очепятка :) Модно - можно...
И при чем тут принтер?
Просто я читал, что в curses.h есть какая-то очистка. И ведь многи проги при запуске очищают все, что было перед ними...
Спасибо сказали:
Аватара пользователя
t.t
Бывший модератор
Сообщения: 7390
Статус: думающий о вечном
ОС: Debian, LMDE

Re: Несколько вопросов по C/C++

Сообщение t.t »

(D.W. @ Суббота, 16 Октября 2004, 11:35) писал(а):кстати, кто-нибудь видел табличку соответствия вывода графики в ДОСе и Юникс ?
о чём это ты? Какой графики и кто кому должен соответствовать? (что-то я временами совсем не понимаю, что ты хочешь сказать ;))
¡иɯʎdʞ ин ʞɐʞ 'ɐнɔɐdʞǝdu qнεиж
Спасибо сказали:
Аватара пользователя
DW
Бывший модератор
Сообщения: 662
Статус: и это еще не все или ничего.
Контактная информация:

Re: Несколько вопросов по C/C++

Сообщение DW »

о чём это ты? Какой графики и кто кому должен соответствовать? (что-то я временами совсем не понимаю, что ты хочешь сказать ;)


не нужно пытаться меня понять, нужно просто принять таким какой наличиствует :).

а имелись в виду досовские менюшки (черезе gotoxy, clearscrn() и прочее).
подумал -> выпил -> подумал -> ... но недавно врачи запретили пить.
Спасибо сказали:
Аватара пользователя
t.t
Бывший модератор
Сообщения: 7390
Статус: думающий о вечном
ОС: Debian, LMDE

Re: Несколько вопросов по C/C++

Сообщение t.t »

(D.W. @ Понедельник, 18 Октября 2004, 12:37) писал(а):не нужно пытаться меня понять, нужно просто принять таким какой наличиствует
А вот и ты меня не понял. :) Я не пытался _тебя_ понять, я пытался понять, что ты хочешь сказать.
(D.W. @ Понедельник, 18 Октября 2004, 12:37) писал(а):а имелись в виду досовские менюшки (черезе gotoxy, clearscrn() и прочее).
Так ты про псевдографику? Тут никакой "таблички соответствия" не может быть по определению, т.к. между всеми остальными символами, кроме псевдографических, при чисто текстовом выводе всегда остаётся просвет в онду точку -- это аппаратное свойство VGA, которое ничем не лечится. Думаешь, зачем всюду, куда ни глянь, консоли со вводом в коях и выводом в досовской кодировке?
¡иɯʎdʞ ин ʞɐʞ 'ɐнɔɐdʞǝdu qнεиж
Спасибо сказали:
Аватара пользователя
DW
Бывший модератор
Сообщения: 662
Статус: и это еще не все или ничего.
Контактная информация:

Re: Несколько вопросов по C/C++

Сообщение DW »

А вот и ты меня не понял. :) Я не пытался _тебя_ понять, я пытался понять, что ты хочешь сказать.

нет, и опять ты меня не понял :) .
Так ты про псевдографику? Тут никакой "таблички соответствия" не может быть по определению, т.к. между всеми остальными символами, кроме псевдографических, при чисто текстовом выводе всегда остаётся просвет в онду точку -- это аппаратное свойство VGA, которое ничем не лечится. Думаешь, зачем всюду, куда ни глянь, консоли со вводом в коях и выводом в досовской кодировке?

а как насчет mc?
подумал -> выпил -> подумал -> ... но недавно врачи запретили пить.
Спасибо сказали:
Аватара пользователя
t.t
Бывший модератор
Сообщения: 7390
Статус: думающий о вечном
ОС: Debian, LMDE

Re: Несколько вопросов по C/C++

Сообщение t.t »

(D.W. @ Понедельник, 18 Октября 2004, 15:12) писал(а):а как насчет mc?
Насколько я знаю, он тоже рисует всё в досовской кодировке.

Конечно, если консоль графическая (фреймбуфер, xterm), то там можно и на других местах эти символы нарисовать. Но в текстовом режиме никак.
¡иɯʎdʞ ин ʞɐʞ 'ɐнɔɐdʞǝdu qнεиж
Спасибо сказали:
Аватара пользователя
DW
Бывший модератор
Сообщения: 662
Статус: и это еще не все или ничего.
Контактная информация:

Re: Несколько вопросов по C/C++

Сообщение DW »

и через что это реализуется - с смысле функций-хейдеров ?
подумал -> выпил -> подумал -> ... но недавно врачи запретили пить.
Спасибо сказали:
Аватара пользователя
Keeper
Сообщения: 209
Контактная информация:

Re: Несколько вопросов по C/C++

Сообщение Keeper »

Еще пару вопросов появилось:
1) Как узнать имя пользователя и запихнуть его в char?
2) Как узнать homrdir этого пользователя и тоже запихгуть в char?
:)
Спасибо сказали:
Аватара пользователя
DW
Бывший модератор
Сообщения: 662
Статус: и это еще не все или ничего.
Контактная информация:

Re: Несколько вопросов по C/C++

Сообщение DW »

на вскидку :

1.getuid() - узнать уид запустившего пользователя.
подумал -> выпил -> подумал -> ... но недавно врачи запретили пить.
Спасибо сказали:
Аватара пользователя
brazhe
Сообщения: 89
Контактная информация:

Re: Несколько вопросов по C/C++

Сообщение brazhe »

2Keeper

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

#include <stdlib.h>

int main() {
   char *home = getenv("HOME");
   char *username = getenv("USER");

   //.......
   return 0;
}


2 D.W.
Возможно, тут нужно сначала выбрать библиотеку: ncurses или slang например,
а потом уже искать соответствия.
Спасибо сказали:
Аватара пользователя
Keeper
Сообщения: 209
Контактная информация:

Re: Несколько вопросов по C/C++

Сообщение Keeper »

brazhe
Спасибо, сегодня посмотрю :)
Спасибо сказали:
Ответить