-2
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
char buf[32];
int main(int argc, char* argv[], char* envp[]){
if(argc<2){
printf("pass argv[1] a number\n");
return 0;
}
int fd = atoi(argv[1]) - 0x1234;
printf("%d\n", fd);
int len = 0;
len = read(fd, buf, 32);
printf("%s", buf);
return 0;
}
Этот мой код, но я не могу отменить бафф. Потому что читать функция не завершается. Пожалуйста, помогите, что не так? Я запускаю программу с терминала следующим образом:
./fd 4660
Функция чтения в C не заканчивается
Я не вижу, где вы открыть дескриптор файла? – ouah
Сначала я начал сначала открывать файл. Дескриптор файла является целым числом, да. Но вы не можете просто передать любое целое число для чтения, это должен быть открытый файл, а 'atoi' не открывает файлы. – datenwolf
'./fd 4660' Может быть, вы читаете stdin (и блокируете)? – wildplasser