Urgent.News

What's breaking now, across thousands of outlets.

Tech

I built a small Unix-style shell in C that helps to understand more than just how to execute commands.

If u wanted to understand more than just how to execute commands.? Here it is ... (pshell) Introducing P-Shell: A shell that shows its work. While building it, I explored how Unix processes actually work under the hood. Some of the things I've implemented: Command execution using "fork()" and "execvp()" Pipes and output redirection (">", ">>") File descriptor manipulation using "dup2()" An…

P-Shell is a shell written in C that goes beyond merely executing commands to provide insight into the underlying process. While developing this project, the author gained a deeper understanding of how Unix processes operate. Some of the key features implemented include:

- Command execution through fork() and execvp()

- Pipes and output redirection using the redirection operators ( >, < )

- Manipulation of file descriptors using dup2()

- An :explain mode that traces the steps taken by the shell during operation

- The ability to view processes through the /proc filesystem

- Creation and inspection of real zombie processes, followed by reaping them using waitpid()

The primary goal of P-Shell is to offer a transparent view into what happens during command execution, rather than allowing the shell to be treated as a black box. The author emphasizes that this project has been an excellent way to gain hands-on experience with C programming, Linux processes, and fundamental operating-system concepts.

Despite still being a work in progress, the author plans to continue enhancing P-Shell. Interested readers are encouraged to visit the project on GitHub at https://github.com/punithk-verse/p-shell and provide feedback. If the project piques your interest in C, Linux, or systems programming, consider leaving a ⭐️ rating on GitHub.

Written by urgent.news from Dev.to's reporting — not their text. Machine-written — may contain errors; check the original before relying on it.

Read the original at dev.to →

More in Tech

Wrapping strings in t() was the easy part of translating my React app

I tried getting an AI agent to internationalize a side project and spent longer checking its diff than it would have taken me to do it myself. It did the work.

  • Translating React app without tools is arduous task
  • Plural forms vary across languages causing errors
  • guided-i18n tool automates internationalization process

Day 1: +410 downloads yesterday

Day 1 of shipping 5 npm packages to 10,000 downloads. Numbers first, no fluff. Yesterday's downloads Combined: 4,563 (+410 since yesterday). 5,437 to go to 10,000.

Label created is not a scan: the tracking state most systems collapse too early

If you surface carrier tracking to customers, there is one modelling decision that quietly produces a whole category of support tickets: treating the first row a carrier returns as if the carrier had…

  • Use three distinct fields: status, hascarrierscan, and firstscanat to improve tracking accuracy.
  • Calculate transit time using deliveredat - firstscanat for precise delivery estimates.
  • Consistent carrier phrasing avoids confusion and ensures accurate customer communication.

What Two Forgotten Smart Plugs Taught Me About the Future of Software

Building Pebble Home with AI coding agents, and wondering how personal software can become. Disclosure: This article was drafted with AI from my firsthand project experience and project records.

  • Two forgotten Oakter smart plugs taught author about software future
  • Investigation led to Pebble Home home automation platform
  • AI agents built Pebble Home around specific devices and habits

More from Thursday 12 November →