Mirki taki przykład, mam serwer w #nodejs i mam jakiś program w #ansic, który przyjmuje dane z stdin, coś z nimi robi i wypluwa na stdout. Jak wykorzystać ten program (napisany w c) w nodzie? Mam kilka pomysłów:
1. Uruchomić ten program w nodzie za pomocą child_process.spawn
2. Zrobić z tego programu moduł node'a i użyć go za pomocą require
3. Zrobić nasłuchiwanie na jednym porcie i przekierować otrzymane dane do
Jak sądzicie które rozwiązanie jest najlepsze i dlaczego?


@ufik78: ktore rozwiazanie jest najlepsze DO CZEGO? Do zabawy? Wszystko jedno
Do przetwarzania miliardów zapytań na sekunde? Pewnie postawienie tego programu przez CGI
  • Odpowiedz
Cześć! #naukaprogramowania #ansic

Mam problem z prostym programem - chcę napisać porównywator ilości znaków we wpisanym przez użytkownika ciągu, jednak napotkałem problem.
Program owszem i działa, ale nie zawsze porównuje dobrze, wygląda to jakby to robił losowo lub w jakiś bardzo dziwny sposób. Ma ktoś chwile zerknąć na problem? Język to C.

#include
#include
#include

int main(void)

{
char str1[100], str2[100];
int cmp;
for (;;)
{
printf("Podaj dwa ciagi znakow.\n\n");
printf("Podaj 1
@lkp0: Mam dodaną.
Mniej więcej wygląda to tak, że muszę zbudować polecenie do mikrokontolera, pierwszy człon mam stały a drugi jest obliczany na podstawie zawartości pliku. Część obliczana to 3 liczby w formie tablicy char[3], które biorą się stąd, że program oblicza ilość liter w każdym zdaniu w pliku. Sprawdzanie jest w pętli while, która tak długo sprawdza, aż nie pojawi się znacznik EOF. W tej pętli obliczana jest poprzez funkcję
  • Odpowiedz
Mirki, pisząc w #ansic mogę zmienić kolor tekstu/tła w konsoli np. w taki sposób:

printf("%c[%d;%d;%dm", 0x1B, 0, 31, 47);
Ale co zrobić, gdy zamiast zmienić kolor, konsola wypluwa dosłownie ten ciąg (kwadracik, a po nim [0;31;47m)? To się dzieje tylko u mnie na PC, na lapku wszystko gra. System ten sam - Windows 10.

A może jest lepszy sposób na to? Chodzi o zmienianie koloru tylko wybranych tekstów, nie chcę całej konsoli
Mirki mam problem przy którym lekko utknąłem.
Mam funkcję, która jako argument przyjmuje nazwę pliku. Ogólnie koncept jest taki, że z pliku wczytuje znak po znaku i mając ich liczbę alokuje pamięć dla dwuwymiarowej tablicy (char ** tab). I w zasadzie dobrze to działa wewnątrz funkcji, ale kiedy program wychodzi z funkcji to zwalniana jest pamięć ta zaalokowana w funkcji i tablica dalej jest pusta. Jest jakiś sposób żeby zaalokować pamięć dla
@Wyrewolwerowanyrewolwer: Ok, już wiem co masz źle. Malloc zwraca adres który jest początkiem obszaru przydzielonej pamięci. W środku funkcji to działa bo masz przypisany ten nowy adres. Niestety, ale wydaje mi się że musisz zwracać tą funkcją adres tego nowego obszaru.
Więc albo zwracasz char**
Albo robisz funkcję która przyjmuje wskaźnik na wskaźnik do dwuwymiarowej tablicy charów :D
  • Odpowiedz
@janek_kos: pojedynczy zamienia nazwę zmiennej na string, podwojny wstawia w wyraz nazwę zmiennej np int ##zmienna##_v1;
da po rozwinieciu int tekst_ktory_byl_zaamiast_zmienna_v1;
  • Odpowiedz
1. Pisz przez jakiś czas w C++.
2. Zacznij pisać w C, bo masz wstęp do programowania w C.
3. Kompiluj na linuxie używając gcc.
4. Napisz trochę kodu w C++, robisz hobbystycznie parser.
5. Skompiluj.
6. Głów się 30 minut dlaczego wyskakują ci błędy.
7. gcc zamiast g++.

Brak profitu


@shido: Aby zrozumieć ten dowcip polecam zacząć lekturę od The C Programming Language (Second edition) - Brian W. Kernighan and Dennis M. Ritchie potem Programming: Principles and Practice Using C++ - Bjarne Stroustrup. W tym momencie, dobrze jest przeczytać Head First OOA&D od O"REILLY. Gdy ogarniesz te podstawy możesz lecieć na głębsza wodę i czytasz Thinking in Java by Bruce Eckel. Potem jeszcze powinieneś przeczytać Dive Into Python
  • Odpowiedz
cześć! otrzebuję analogicznej funkcji do tej:

long code;
scanf("%ld", &code);

ale string wprowadzany z klawy ma być zapisywany do tablicy(?) potrzebuję do tego funkcji zamieniającej pojedyncze chary na ciągi bitów, np, char $ bedzie zamieniany na np. 10101010. potem te bity mają być transferowane (kolejna funkcja, nie wiem czy istnieje) do socketa z którym się łączy. Słyszałem, że funkcje można samemu pisać. Potrzebuję wskazówek.

#naukaprogramowania #ansic
Mam taki kod:

#include < stdio.h >

main()
{
int name;
char age;

printf("Enter your name\n");
scanf("%d", &name);

printf("Enter your age\n");
scanf("%c", &age);

printf("\nYou entered that data :\n");
printf("You entered that name : %d\n", name);
printf("You entered that age : %c\n", age);
}

przy próbie kompilacji rzuca błedem:

$ gcc dataD.C -o dataD1.c
dataD.C:1:21: fatal error: stdio.h : No such file or directory
compilation terminated.

pomysły?
#naukaprogramowania #ansic
Mircy ! czy jesli napisze socket w C++ to bede mógł odpalić to w unixie? BSD przykładowo. Pytanie laika, ale wolę spytać.

A czytałem, że można definiować swoje funkcje, np. przy przywołaniu zwracają wartość 1,0. czy instnieje funkcja "zbierająca" je do pliku? jeśli tak, jak określić "scieżkę" z której ma sciągać pojedyncze bity z określonych wcześniej funkcji?

Dotychczas uczyłem się samego C, ale zacząłem poznawać ++; zastanawiam się, czy to ze sobą