Помогите новичку
:confused: я пытаюсь начать программировать на Си в unix,
где можно взять разные исходники? хотя бы простейшие програмки, например чтение и запись в файл, прошу помочь!
Спасибо
Например тут:
а топик с литературой я себе прилепил?
вообще то я спрашивал об исходниках а не о литературе
вообще то в литературе всегда даются простые и не очень примеры исходников
да но там мало примеров :(
вариант два - системные функции (вызовы).
для в вашего случае их много не надо.
open, close, write, read, и кажестся seek, поправьте кто-нибудь если ошибаюсь.
open возвращает дескриптор типа int. для остальных функций, это число будет указывать, над каким файлом производить свои операции.
man, на крайняк одну из книжек по системному программированию в unix.
нахрена лазить в исходниках?
незнаю, мне трудновато начать, думаю исходники меня смогу увлечь, или какие нить предложения будут?
http://www.aladon.ru/resources/sources/Rom24b6.tar.gz
если получится собрать, уже будет хорошо. Там целая MMORPG на чистом Си под unix с доступом по телнет. Запускаете его на одной консоли, и подключаетесь к нему с другой. И через интернет еще до порядка 300 человек подключится может. Главный файл src/comm.c - раскручивайте, от него пляшем, вроде увлекательно
как мне теперь лучше например вывести содержание файла в командную строку и как вообще запустить shell команду из си?
ага я полный нуб :eek:
/***************************************************************************
* example.c
*
* Mon Jun 19 09:45:22 2006
* Copyright 2006 User
* gcc -O2 -o example example.c
****************************************************************************/
#include <stdio.h> // printf()
#include <unistd.h> // write(), NULL
#include <stdlib.h>
#include <errno.h>
#include <fcntl.h>
#define FILE_PATH "/home/user/text_file"
#define BUFFER_SIZE 16384
void main (void)
{
int fd;
int chars_read;
int chars_write;
char buffer[BUFFER_SIZE];
fd = open(FILE_PATH, O_RDONLY);
if (fd <0)
{
printf ("errno=%d\n", errno);
perror (FILE_PATH);
}
chars_read = read(fd, &buffer[0], BUFFER_SIZE);
printf ("chars_read=%d\nfd=%d\n", chars_read, fd);
chars_write = write (1, buffer, chars_read);
close (fd);
}
ну например wget
[QUOTE=kris]спасибо, а как можно из си ввести команду в шелл?