I'm taking an Operating Systems class in which I have to write this monster of a C++ program and it's giving me a bit of trouble.

It would be amazing if someone would be able to help me out a bit. The only problem is the directions for the programming project are a bit intense. If anyone has a bit of free time on their hands I'd ENORMOUSLY appreciate it.

For the most part, my problem is that a lot of the directions are a bit vague and I'm not quite clear on how the information is to be stored.

The project outline can be found here:

Basically I'm still working on the pseudocode for Part I (the create function). Here is some of the pseudocode I have so far (completely unfinished, and just some beginning ideas/attempts): www.techtalkforums.com/goodies/Homework.C

What I'm really confused about is how the information is to be stored in the two flat text files we're dealing with and how it's to be pulled from them. In addition, is it important that all of the contents of these files be stored in some form of ADT?

Thank you for taking the time to help me with this! :) It's enormously appreciated

As a side note: I know the due date for the assignment says Thursday! But basically an intro sketch of the pseudocode is due then, and it's still subject to change. So I'm not procrastinating! I'm right on schedule with the rest of the class :)

Not procrastinating, 1st time EVER :P


anyone? please?

I'm going to go see if I can hunt down a professor later today and ask for their help. Just if someone could give me a hand with how to go about storing this info in the text file, and how it would be pulled out of the text file. (Not looking for code here, just logic/theory ideas)

EDIT: I just want to add, this is the first time I've programmed in about a year and a half, so please be kind to me!

Sounds like a fun project. :p

Well, hmmm....a storage device...(in binary or text?).

...begin rambling...

A text file used as a table to index the files stored on the storage device.

I didn't read the instructions closely.....and it's been many, many years since I've programmed anything of the sort.

I guess you will have to decide how large a sector on the storage device is.

Given a video file to store...you will need a pointer to the beginning of the file...and know how large the file is to determine how much space is taken up....an additional portion of the record to list pointers and size of data between each chunk if it's not contiguous on the device.

Table should include totals....space used and free space available.

...end rambling...

If I knew C++ I would know what to use instead of fread and fwrite. Ha

Sorry I can't be much help. But it looks like the instructions include a lot of detail which your instructor evidently thinks is useful. Read a bit closer....I saw a struct declared that would be useful...the table directory seems to be detailed too.

Good luck, and if what I said above doesn't jive with the actual project, sorry. :)

Oh, it's always good to think in terms of imput and output....Read the directions a few times to see if you got those little details hatched out.....then think of the black box.

The file attributes look like they are going to be at the beginning of the stored file....including, if needed, the pointers and sizes if the file is broken into chuncks across the the storage device.

And the table file includes the file name, attributes pointer (struct) and pointer to initial data.

Am I wrong here?

- a zero if it can successfully create a file with the above
attributes and file initialized with data pointed to by

- -1 a file with this name already exists;
- -2 exceeded the maximum number of allowable files (i.e. the
no of files exceeded the number of directory entries);
- -3 no space on the disk;
- -4 data for initialization insufficient;

Given a file....

psuedo code ramblings

....stored correctly.....return ZERO.

Given a file...

psuedo code ramblings

duplicate file name

....File already exists....return -1

Given a file...

psuedo code ramblings

maxed out files on storage device

....no directory entry available....return -2
( maybe a hash set up for a finite amount of directories)

Given a file...

psuedo code ramblings

....not enough space available for storage.....return -3

Given a file.....

psuedo code ramblings

...what was that?......return -4

OK, I know I left out the important part....Ha. :)

Thank you for your reply. I can see you actually took the time to read over the assignment, for everything you said definitely applies.

I just got home from school and am doing my Creative Writing assignment right now. As soon as I finish it, I'll have the rest of the night to work on this CSC assignment (at which time I'll most likely revisit this thread and post the latest).

Aelfinn, you were really a big help to me, thank you :) I worked on the homework for quite awhile last night, and I'm going to go back to it tonite. As I mentioned already, the pseudocode is due tomorrow. :)

One question ...

The table which needs to be used as an index to the files: would it be okay if I pulled all of the information out of a text file upon opening the program, stored them in a linked list for the duration of the program, and then re-outputted them back to a flat text file when I am finished w/ them?

The program calls for adding/editing/removing files, so I figured this would be the best way to handle it.

Well, I hope I just helped you get your mind running...and haven't sent you down the wrong path. :) But I'm sure you would have noticed quickly if I did.

A link list would be the path of least resistance. A binary tree would be quite a bit quicker to search.

Hmm ... binary trees.... I started the pseudocode with a linked list in my mind, so I basically made all of my traversals linear (e.g. point A straight through to point Z in a single for loop).

Now that I think about it though, a lot of the code requires searching for an entry, so that would def be the best way to go about it.

The problem is that I've never coded a binary tree before in any context. I'm completely confident in the structure and how the pointers operate, I've just never actually coded a whole program from start to finish via a binary tree.

Perhaps that's an option I'll definitely consider though. :) If I can piece together some pseudocode I'll do it that way. If I find myself getting stuck, I'll resort to the linked list for the time being (until I could come up with a better option).

Another question: straight C has no support for classes, right? Only structs? (not sure of this one, just askin')

- Dani

Since the clock is ticking, you may want to do the persuadocode (:)) with the linked list and later when you actually write the program you can change to a binary tree.

And yes, C uses struct. Classes are an OO thing. :)

One day when I decide to actually learn C# I'll learn what a darn class is (I sort of know...a struct with flared fenders, front and rear spoilers, smoked glass, and a trailer hitch, Ha). I wish C used cout and cin...it would've been a lot easier to use when I learned C. :)


I hope your assignment went alright.

Whew! Don't even get me started on the project. Me and my friend worked on it from 9pm Wednesday nite straight through until about 6am the next morning!

And that was just the pseudocode! The rest is due this thursday ... (tenatively).

Well today is only saturday...so you've got plenty of time. Ha! :)

Yeah but this weekend is mostly going to be spent doing a chemistry lab write-up due Monday, a chemistry pre-lab due Monday, studying 60 pages of the chem textbook for a quiz on Monday, writing a short story for my Prose Writing class which is due on tuesday, making a 5 page website about multimedia in education for a BCIS course which is due Thursday, and finally, if I have enough time, learning C and UNIX system commands so I can *begin* this Operating Systems assignment ... not to mention catching up on a week's worth of sleep b/c I got none all week ;) Dare I scream HELP!

Oh shoot! I just remembered I have a chem lab quiz on solutions also on Monday ... in addition to the chem lecture quiz on calculating/deriving reaction rates via calculus. Oh well.

Sheesh, you're giving me flashback nightmares. I can feel that little knot in my stomach again. Ha.