Я был недавно очень занят проектом над операционными системами .. Я работаю над своими Mac и все идет отлично .. Когда я пытался запустить ту же программу на ПК с Linux, программа работала ужасно неправильно ... . Например, fgets и fscanf бегло работают на Mac, но когда я пытаюсь fgets 2 раза подряд из stdin (сначала перематывая stdin), я не получаю то, что хочу в linux, хотя на моем mac evertyhting работает нормально, как expexted .. Пожалуйста, помогите мне, если я пропускаю какую-либо информацию о Linux и проблемах ..
void add_new_account(int sd)
{
int my_id, next_id;
struct drivers instance;
read(sd, &next_id, sizeof(int));
if (next_id >= 1000) {
printf("system is full .. we are sorry for this inconvenience\n");
exit(0);
}
read(sd, buf, sizeof(buf));
printf("%s\n", buf);
rewind(stdin);
fgets(instance.driver_name, sizeof(instance.driver_name), stdin);
rewind(stdin);
fgets(instance.password, sizeof(instance.password)+1, stdin);
write(sd, &instance, sizeof(instance));
read(sd, &my_id, sizeof(int));
printf("your unique id is %d! please save it in order to login with it\n", my_id);
}