Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • SEARCH
  • Home
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 729963
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: May 14, 20262026-05-14T06:51:27+00:00 2026-05-14T06:51:27+00:00

For this university project I’m doing (for which I’ve made a couple of posts

  • 0

For this university project I’m doing (for which I’ve made a couple of posts in the past), which is some sort of social network, it’s required the ability for the users to exchange messages.

At first, I designed my data structures to hold ALL messages in a linked list, limiting the message size to 256 chars. However, I think my instructors will prefer if I save the messages on disk and read them only when I need them. Of course, they won’t say what they prefer, I need to make a choice and justify the best I can why I went that route.

One thing to keep in mind is that I only need to save the latest 20 messages from each user, no more.

Right now I have an Hash Table that will act as inbox, this will be inside the user profile. This Hash Table will be indexed by name (the user that sent the message). The value for each element will be a data structure holding an array of size_t with 20 elements (20 messages like I said above). The idea is to keep track of the disk file offsets and bytes written. Then, when I need to read a message, I just need to use fseek() and read the necessary bytes.

I think this could work nicely… I could use just one single file to hold all messages from all users in the network. I’m saying one single file because a colleague asked an instructor about saving the messages from each user independently which he replied that it might not be the best approach cause the file system has it’s limits. That’s why I’m thinking of going the single file route.

However, this presents a problem… Since I only need to save the latest 20 messages, I need to discard the older ones when I reach this limit.

I have no idea how to do this… All I know is about fread() and fwrite() to read/write bytes from/to files. How can I go to a file offset and say “hey, delete the following X bytes”? Even if I could do that, there’s another problem… All offsets below that one will be completely different and I would have to process all users mailboxes to fix the problem. Which would be a pain…

So, any suggestions to solve my problems? What do you suggest?

  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-05-14T06:51:28+00:00Added an answer on May 14, 2026 at 6:51 am

    You can’t arbitrarily delete bytes from the middle of a file; the only way that works is to rewrite the entire file without them. Disregarding the question of whether doing things this way is a good idea, if you have fixed length fields, one solution would be to just overwrite the oldest message with the newest one; that way, the size / position of the message on disk doesn’t change, so none of the other offsets are affected.

    Edit: If you’re allowed to use external libraries, making a simple SQLite db could be a good solution.

    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

I've posted about this last year because some university project and now I have
I'm building a small social networking website for a university project and this question
For university project I'm rolling out some cloud document editor. One of the features
For my university project I am creating a neural network that can classify the
I am working on a university project, which involves profile and event management using
Firstly this is for a simple university project, so time is more important than
I am doing a university project at the minute where I feed information in
I am doing me university project and facing a big issue. i am developing
I'm building a web application for a University project which requires the use of
Hi Im trying to make a posts sections for a university project on video

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.