LINUX.ORG.RU

Не понимаю почему не работает

 , , , ,


0

1

Данная программа при запуске ничего не выводит в консоль, даже «begin» не выводит. Компилируется нормально. Где я ошибся?

#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <stdio.h>
#include <stdlib.h>


int main(int argc, char * argv[])
{
	printf ("begin");
    int sock;
    struct sockaddr_in addr;
    char buf[1024];
    int bytes_read;
	
	
	int portudp;

	/* чтение аргумента из командной строки */
	portudp = atoi(argv[0]);
	printf(argv[0]);	


    sock = socket(AF_INET, SOCK_DGRAM, 0);
    if(sock < 0)
    {
        perror("socket");
        exit(1);
    }
    
    addr.sin_family = AF_INET;
    addr.sin_port = htons(portudp);
    addr.sin_addr.s_addr = htonl(INADDR_ANY);
    if(bind(sock, (struct sockaddr *)&addr, sizeof(addr)) < 0)
    {
        perror("bind");
        exit(2);
    }

    while(1)
    {
        bytes_read = recvfrom(sock, buf, 1024, 0, NULL, NULL);
        buf[bytes_read] = '\0';
        printf(buf);
    }
    
    return 0;
}

Построчная буферизация? «\n» к концам строк добавь.

mironov_ivan ★★★★★ ()

Вывод вроде бы по-умолчанию не flushится вплоть до вывода \n.

PolarFox ★★★★★ ()

argv[0] - путь и имя исполняемого файла, первый аргумент переданный пользователем - argv[1]

invy ★★★★★ ()

cpp, g++, udp, програмирование, сеть
Где я ошибся?

Здесь нет c++.

Shtucer ()
Ответ на: комментарий от mironov_ivan

Можно ещё добавить fflush(stdout); после каждого printf без «\n».

IOne ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.