Updx’s blog

februar 22, 2008

c math or loop

Shranjeno pod: C Programming — updx @ 1:52 am

No tu imate en primer kako se lahko loop zanke znebimo, samo malo matematike moramo obvladati. :P

#include <stdio.h>

int main(void)
{
    int result = 0, i;

    double a, b, num;

    scanf("%lf", &num); // read the number from the keyboard


    for(i = 1; i <= num; i++) // compute the result

        result += i;

    a = num/2;

    b = a * num + a;

    printf("1) %d\n", result); // output the result

    printf("2) %.0f\n", b);

    return 0;

}

click

februar 21, 2008

amsn crash?

Shranjeno pod: Programs — updx @ 11:22 popoldan

No kot lahko vidite na sliki sem prikazal napako programa amsn, ki se v unix,linux sistemih uporablja
za msn protokol.
Amsn si vedno ob zagonu izbere random port v rangu 60535-65335. Kateri port si je izbral vaš amsn program lahko pogledate z ukazom v terminalu cat ~/.amsn/profiles
ali z ukazom netstat -na |grep LISTEN
Nekaj časa nazaj, ko sem testiral ta bug se je amsn sesul sedaj se očitno ne več vsaj v freebsd -ju se ni za linux ne vem. :P
Za ta bug še ni exploita in ga tudi verjetno nikoli ne bo tko, da se vam ni treba bati da bi vas kdo poheku. :D
amsn

februar 19, 2008

Perl preveri ali ima host odprt port ali zaprtega

Shranjeno pod: Perl Programming — updx @ 7:35 popoldan

No tu je en program, ki sem ga spisal že pred letom. Programu podate host in port, potem pa se bo program poskušal povezat na ta host in skozi podan port. Pove vam če ima podan host odprt port ali ne.

#!/usr/bin/perl
use IO::Socket;

$host = $ARGV[0];
$port = $ARGV[1];

$host or die("$0 <host> <port>\n");

($sock = IO::Socket::INET
->new(PeerAddr => $host,
		PeerPort => $port,
		Proto    => 'tcp',
		Timeout  => '2',)) ?
		die"Port $port open on $host\n"
		: die"Port $port closed on $host\n";

exit;

#Perl code by upd.
#Code try if port is open.
#Made 12.4.2007


Kodo seveda lahko dobite tudi tu

Opomba:
Za vrstico

$host or die("$0 <host> <port>\n");
morate dodati še

$port or die("$0 <host> <port>\n");

strncpy example

Shranjeno pod: C Programming — updx @ 11:32 am

No tu lahko vidite primer kako kopirate dva stringa v en buffer. Kazalec pointer kaže na naslov kjer se konča prvi string. Potem lahko kopiramo še drugi string v pointer, ker pa le ta kaže na buf bo string kopiran v buf.

#include <stdio.h>
#include <string.h>

int main()
{

char buf[50];
char *pointer;

	strncpy(buf, "This is an example, ", 21);

		pointer =  &buf[21];

	strncpy(pointer, "of copying string to buffer.", 29);

	printf("%s\n", buf);

}


In še enkrat source dobite lahko tudi tukaj click :)

februar 10, 2008

ping c source

Shranjeno pod: C Programming — updx @ 2:43 popoldan

Spisal sem ping program, ki ga lahko dobite tu. ping.c Vem da je že veliko takih programov na internetu toda hotel sem spisati svojega, ker se mi zdi icmp protokol zelo zanimiv.

V kodi je veliko komentarjev, pisal sem jih za tiste, ki bojo prvič programiral ping program, da si bodo lahko malo pomagali. V kodo sem dodal tudi primere struktur icmp in ip. Upam da bo komu program kaj pomagal.

Shranite si ga pod imenom ping.c in nato napišite gcc ping.c -W -o ping no sj to verjetno že veste kako gre. Pri meni ni bilo nobenega errorja ali warninga. Program naj bi delal na Unix in Linux.
V primeru, da se vam program noče compilat napišite v komentar in bom poskusil odpravit napako. In še primer prigrama na mojem freebsd -ju.

PING host -> google.si (66.249.93.104) with -> 56 data bytes
Echo reply from host -> google.si (66.249.93.104), data bytes -> 64, ttl -> 128, rtt -> 78.167 ms

Pa še nekaj:
ttl = time to live = je nastavljen na 128 in naj bi se zmanšal pri vsakem routerju za 1
rtt = round trip time -> potovanje paketa od nas do tarče

TankPitstop

Shranjeno pod: Other — updx @ 9:00 am

TankPitstop

TankPitstop 1

TankPitstop 2

Nizozemski izumitelj in delavec na bencinski črpalki Noco van Staveren je izumil posebno robotsko roko z imenom Tankpitstop, ki zmore samodejno napolniti avtomobilski rezervoar za gorivo. Tankpitstop stane približno 75000 evrov in zna zaenkrat napolniti samo avtomobile, katerih mere so vnešene v njegovo bazo podatkov, pri tem pa pokrov rezervoarja ne sme biti zaklenjen s ključem. Njegov izumitelj kljub temu upa, da bodo takšne robotske roke do konca leta že vsaj na polovici nizozemskih bencinskih črpalk. TankPitstop je prvi avtomatski robot za gorivo na svetu, ki resnično deluje v praksi.

Dne 4. Februarja, N. van Staveren B.V in Rotec Engineering B.V  so prvič uradno pognali TankPitstop.

februar 8, 2008

gettimeofday

Shranjeno pod: C Programming — updx @ 11:32 popoldan

No tu imate programček z funkcijo gettimeofday(). Click-me

No naj malo opišem program. Program se začne izvajati v zanki main() najprej z funkcijo gettimeofday() dobi trenutni čas. Sledi izvajanje funkcije doit() ta funkcija je tu zato da se program ne izvede takoj, lahko bi uporabili tudi funkcijo sleep().

Ko se funkcija doit() konča z izvajanjem sledi ponovno gettimeofday() tako da dobimo dva časa.
Prvi čas je preden se je začela funkcija doit() izvajati in drugi čas je po končanem izvajanju funkcije doit().
Sedaj odštejemo prvi čas od drugega. Ker nam funkcija gettimeofday() vrne sekunde in mikrosekunde moramo vsakega posebaj odšteti. Ena sekunda ima 1000000 mikrosekund in v primeru, da pri odštevanju mikrosekund dobimo negativno vrednost moramo prišteti 1000000 in pri sekundah odšteti za eno vrednost. Program izpiše koliko časa se je izvajala funkcija doit() namesto te funkcije lahko vstavite svojo funkcijo in tako izmerite čas izvajanja te funkcije.

Vse skupaj sprintamo z ukazom printf(). Tukaj imate še link do manuala funkcije gettimeofday()
click-me

Program kompajlamo z ukazom “gcc time.c -o time”. Upam da je program komu pomagal. In še primer izpisa na mojem freebsd -ju.

# time ./time
Start Time is 1202512389 second and 140290 microsecond
Finish Time is 1202512391 second and 850805 microsecond
————————————————–
Time: 2 second && 710515 microsecond || 710 milisecond
2.505u 0.000s 0:02.71 92.2% 5+1148k 0+0io 0pf+0w

Next Page »

Blog at WordPress.com.